如何在Android Marshmallow中检查是否将任何应用程序设置为选定的模拟位置设置

如何在Android Marshmallow中检查是否将任何应用程序设置为选定的模拟位置设置,android,cordova,ionic-framework,gps,Android,Cordova,Ionic Framework,Gps,对于Android棒棒糖和以下版本,我检查如下 但是对于Android M此选项将被删除。现在对于Android M我正在做下面的事情。但这不起作用,并引发异常 if(Build.VERSION.SDK\u INT>=Build.VERSION\u CODES.M) { AppOpsManager opsManager=(AppOpsManager)this.cordova.getActivity().getApplicationContext().getSystemService(Contex

对于Android棒棒糖和以下版本,我检查如下

但是对于Android M此选项将被删除。现在对于Android M我正在做下面的事情。但这不起作用,并引发异常

if(Build.VERSION.SDK\u INT>=Build.VERSION\u CODES.M)
{
AppOpsManager opsManager=(AppOpsManager)this.cordova.getActivity().getApplicationContext().getSystemService(Context.APP_OPS_SERVICE);
PackageManager pm=this.cordova.getActivity().getApplicationContext().getPackageManager();
名单


  • 你解决了吗?没有。我没有得到任何解决方案。现在我允许接受所有位置而不进行过滤。你想修复它吗?我已经修复了它,我可以共享我的代码。没有人仅仅因为这个问题才购买我们的应用程序。我以某种方式解决了它。请共享代码。即使对我来说也是必需的。提前谢谢。
    if (Secure.getString(this.cordova.getActivity().getContentResolver(), Secure.ALLOW_MOCK_LOCATION).equals("0")) {
                return true;
            } else {
                return false;
            }
    
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
            {
                AppOpsManager opsManager = (AppOpsManager) this.cordova.getActivity().getApplicationContext().getSystemService(Context.APP_OPS_SERVICE);
                PackageManager pm = this.cordova.getActivity().getApplicationContext().getPackageManager();
                List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
                for (ApplicationInfo applicationInfo : packages) {
                    if (opsManager.checkOp(AppOpsManager.OPSTR_MOCK_LOCATION, applicationInfo.uid, applicationInfo.packageName)== AppOpsManager.MODE_ALLOWED) {
                        return true;
                        break;
                    }
                }
            }