使用模拟位置而不在设置中进行设置

我正在编写一个使用android中的位置模拟可能性的应用程序。

我想实现的是模拟我的位置,而无需在开发人员选项中设置“允许模拟位置”标志。

我知道这是可能的,因为它可以与此应用一起使用:https

//play.google.com/store/apps/details?id=com.lexa.fakegps&hl=zh-

CN

我试过的

生成一个apk,将其移动到/ system / app,重新启动,

并且在清单中是否带有ACCESS_MOCK_LOCATION权限也尝试了它。

但这一切都会导致此异常:

RuntimeException:无法启动活动:SecurityException:需要ACCESS_MOCK_LOCATION安全设置

回答:

我已经反编译了com.lexa.fakegps您提到的问题以及它的操作:

private int setMockLocationSettings() {

int value = 1;

try {

value = Settings.Secure.getInt(getContentResolver(),

Settings.Secure.ALLOW_MOCK_LOCATION);

Settings.Secure.putInt(getContentResolver(),

Settings.Secure.ALLOW_MOCK_LOCATION, 1);

} catch (Exception e) {

e.printStackTrace();

}

return value;

}

private void restoreMockLocationSettings(int restore_value) {

try {

Settings.Secure.putInt(getContentResolver(),

Settings.Secure.ALLOW_MOCK_LOCATION, restore_value);

} catch (Exception e) {

e.printStackTrace();

}

}

/* every time you mock location, you should use these code */

int value = setMockLocationSettings();//toggle ALLOW_MOCK_LOCATION on

try {

mLocationManager.setTestProviderLocation(LocationManager.GPS_PROVIDER, fake_location);

} catch (SecurityException e) {

e.printStackTrace();

} finally {

restoreMockLocationSettings(value);//toggle ALLOW_MOCK_LOCATION off

}

由于这些代码的执行时间非常短,因此其他应用几乎无法检测到ALLOW_MOCK_LOCATION的更改。

另外,您还需要:

1.要求对设备具有root权限

2.将应用程序移至/system/app/system/priv-app

我在我的项目中尝试过,并且效果很好。

以上是 使用模拟位置而不在设置中进行设置 的全部内容, 来源链接: utcz.com/qa/400934.html

回到顶部