关于android的模拟定位问题

'''
//判定是否使用了模拟定位
if(isSelectedMoniLocal(this)){
Intent intent = new Intent(
Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS);
startActivityForResult(intent, 0x0000101);
}
'''
/**
* 6.0以上系统判定是否允许当前应用使用模拟定位
* true--允许
* false--禁止
* @param mContext
* @return
*/
public static boolean isSelectedCurApp(Context mContext){
boolean statue=true;
String serviceName = Context.LOCATION_SERVICE;
locationManager = (LocationManager) mContext.getSystemService(serviceName);
try {
String providerStr = LocationManager.GPS_PROVIDER;
LocationProvider provider = locationManager.getProvider(providerStr);
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(
providerStr
, true, true, false, false, true, true, true
, Criteria.POWER_HIGH, Criteria.ACCURACY_FINE);
}

        } catch (SecurityException e) {
            //如果没有选择当前的应用,则addTestProvider会抛出异常
            statue= false;
        }
     return statue;
}

public static boolean isSelectedMoniLocal(Context mContext){
    boolean status=false;
    if(Build.VERSION.SDK_INT > 22){
        //6.0以上版本
        if(isSelectedCurApp(mContext)){
            ToastUtil.showMessage(mContext, "为保证位置精确性,请不要允许此应用使用模拟定位",
                    Toast.LENGTH_SHORT);
            status=true;
        }
    }else{
        if (getMockLocationStatus(mContext).equals("1")) {
            ToastUtil.showMessage(mContext, "为保证位置精确性,请关闭【允许模拟位置】选项!",
                    Toast.LENGTH_SHORT);
            status=true;
        }
    }
    return status;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 断是否开启了系统模拟位置 public static boolean isSelectedMoniLocal(Co...
    笨coco阅读 608评论 0 0
  • 在Android源码中,提供的快捷开关相对是比较少的,Android4.0系统默认提供的桌面快捷开关AppWidg...
    Sunny君907阅读 1,020评论 0 0
  • //gradle 下载慢 //可以直接下载gradle之后放在对应的目录里//或者修改 根目录下的文件bul...
    zeromemcpy阅读 896评论 0 0
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,752评论 0 17
  • Android 系统提供了地理位置服务相关的API,方便了开发者去获得当前地理位置。用户可以通过GPS接收器接受地...
    dev晴天阅读 12,187评论 1 7