微信模拟位置想在哪就在哪(GPS欺骗)
来源:互联网 发布:为什么淘宝突然打不开 编辑:程序博客网 时间:2024/04/30 06:15
微信模拟位置是通过位置欺骗,让微信误以为我们就在当前的位置进行周边好友的搜索与添加。
这是一个很老的功能,为什么说很老呢?因为这是在android4.1的时候流行的一个功能,android在4.4推出后这个功能基本不能使用了!即使很老但是最近也碰到了这样的需求,不过针对特殊的群体,手机定制而来,就没有限制了!
首先我们要知道怎么用:
首先:我们从设置里找到开发者选项(开发者都知道):
在这里就是,开发人员工具
然后:打开允许模拟位置:
进入代码阶段:
一、判断是否开启了地理位置模拟
if (Settings.Secure.getInt(getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0) { // 开启了地理位置模拟 LocProvider(); } else { UIUtils.showToast(getString(R.string.open_mock_location)); } private String mMockProviderName = LocationManager.GPS_PROVIDER; private void LocProvider() { formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); time = new Date().getTime(); formatTime = formatter.format(time); initLocation(); runFacke(); }
二、然后就需要进行初始化,位置模拟了
/** * 初始化 位置模拟 */ public void initLocation() { //开启服务 locationManager = (LocationManager) this .getSystemService(Context.LOCATION_SERVICE); LocationProvider provider = locationManager.getProvider(mMockProviderName); if (provider != null) { locationManager.addTestProvider( provider.getName() , provider.requiresNetwork() , provider.requiresSatellite() , provider.requiresCell() , provider.hasMonetaryCost() , provider.supportsAltitude() , provider.supportsSpeed() , provider.supportsBearing() , provider.getPowerRequirement() , provider.getAccuracy()); } else { locationManager.addTestProvider(mMockProviderName, false, true, false, false, true, true, true, 0, 5); } locationManager.setTestProviderEnabled(mMockProviderName, true); //新 locationManager.setTestProviderStatus(mMockProviderName, LocationProvider.AVAILABLE, null, System.currentTimeMillis()); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } locationManager.requestLocationUpdates(mMockProviderName, 0, 0, new LocationListener() { @Override public void onLocationChanged(Location location) { double latitude = location.getLatitude(); double longitude = location.getLongitude(); LogUtils.e("latitude==>" + latitude + "------longitude===>" + longitude); } @Override public void onStatusChanged(String s, int i, Bundle bundle) { } @Override public void onProviderEnabled(String s) { } @Override public void onProviderDisabled(String s) { } }); }
三、这儿需要开启一个线程机制来实现我自己设置的GPS位置,一直改变你手机的物理位置。
public void runFacke() { isSimulateStart = true; // 开启线程,一直修改GPS坐标 thread = new Thread(new Runnable() { @Override public void run() { while (isSimulateStart) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } setLocation(Double.valueOf(latitude), Double.valueOf(longitude)); } } }); thread.start(); }
四、设置GPS的位置
/** * setLocation 设置GPS的位置 */ @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) private void setLocation(double latitude, double longitude) { try { Location location = new Location(mMockProviderName); location.setLatitude(latitude); location.setLongitude(longitude); location.setAltitude(2.0f); // 高程(米) location.setBearing(180); // 方向(度) location.setSpeed(10); //速度(米/秒) location.setAccuracy(0.1f); // 精度(米) location.setTime(System.currentTimeMillis()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { location.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos()); } locationManager.setTestProviderLocation(mMockProviderName, location); } catch (Exception e) { e.printStackTrace(); } }
一定要加权限
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
好了这个时候模拟位置完成了,我模拟的位置是“上海”
我们来看看效果
这样就完成了,
注意:不要打包安装正式版的,这个权限是debug权限
好了如果需要关闭模拟位置:
public void stopMockLocation() { if (isSimulateStart) { try { locationManager.removeTestProvider(LocationManager.GPS_PROVIDER); } catch (Exception ex) { // 若未成功addTestProvider,或者系统模拟位置已关闭则必然会出错 } isSimulateStart = false; } }
如果有什么好的方法,或者确定支持4.4以上,亲们要给个链接啊!不要忽悠我呀…………..
0 0
- 微信模拟位置想在哪就在哪(GPS欺骗)
- js -- 设置输入框光标位置(在模拟微信表情输入的时候遇到的)
- 在Android模拟器中模拟GPS
- Android手机模拟GPS位置
- 你在哪,现实就在哪
- 在iOS开发中自动获取当前的位置(GPS定位)
- 在iOS开发中自动获取当前的位置(GPS定位)
- 在android中通过gps wifi定位 位置
- 微信自动加好友 模拟位置
- 用Chrome在电脑上模拟微信内置浏览器
- 用Chrome在电脑上模拟微信浏览器
- 新版微信收钱在哪
- 在Android模拟器上怎样模拟GPS功能
- arcgis for android 学习 - (7) 在真机上 模拟GPS
- arcgis for android 学习 - (7) 在真机上 模拟GPS
- GPS坐标的确立,GPS卫星在太空的位置,卫星参数
- adb 命令行模拟GPS位置信息
- 模拟浏览器、屏幕大小和 GPS 位置
- java编写定时器
- 在Ubuntu14上搭建Git服务
- ie8兼容canvas标签
- Android开发面试经——6.常见面试官提问Android题②(更新中...)
- Mysql学习(六)
- 微信模拟位置想在哪就在哪(GPS欺骗)
- 微信小程序配置websocket环境及如何在小程序上使用做个简单的解释吧
- 高精度整数(n进制,n<=10)加法
- springboot 静态资源html,jsp,css
- Android开源项目分类汇总 各种ui效果
- 时区转换方法2
- nodejs express的session验证
- 最全的Android源码目录结构详解
- Windwos 10 安装Docker