生根并请求超级用户权限在我的应用程序中启用/禁用gps需要做什么?如何在rooted android上以编程方式禁用/启用gps?
2
A
回答
1
你不应该保护用户的隐私。然而,它可以通过利用一个错误。如何看到这一点:
How can I enable or disable the GPS programmatically on Android?
注意,这可能不会在Android上的所有版本 - 见
https://android.googlesource.com/platform/packages/apps/Settings/+/4b21f7cd9424eeb83838071a4419912ee5d5e41d
这些资料表明它已经固定,但我不知道哪个版本有修复(如果有的话)。
1
Root权限的设备尝试这只是使用su的高精确度模式
Process proc=Runtime.getRuntime().exec(new String[]{"su",
"pm grant com.your_app_packagename android.permission.WRITE_SECURE_SETTINGS",
"settings put secure location_providers_allowed gps,network,wifi"});
proc.waitFor();
启用GPS上运行后台线程:)
进一步您可以参考此链接here
0
这些命令此代码适用于ROOTED手机如果该应用移至/system/aps
,他们有以下权限在清单:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
代码
private void turnGpsOn (Context context) {
beforeEnable = Settings.Secure.getString (context.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
String newSet = String.format ("%s,%s",
beforeEnable,
LocationManager.GPS_PROVIDER);
try {
Settings.Secure.putString (context.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
newSet);
} catch(Exception e) {}
}
private void turnGpsOff (Context context) {
if (null == beforeEnable) {
String str = Settings.Secure.getString (context.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if (null == str) {
str = "";
} else {
String[] list = str.split (",");
str = "";
int j = 0;
for (int i = 0; i < list.length; i++) {
if (!list[i].equals (LocationManager.GPS_PROVIDER)) {
if (j > 0) {
str += ",";
}
str += list[i];
j++;
}
}
beforeEnable = str;
}
}
try {
Settings.Secure.putString (context.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
beforeEnable);
} catch(Exception e) {}
}
相关问题
- 1. 如何以编程方式在Ionic Framework或Cordova中启用和禁用GPS
- 2. 以编程方式启用/禁用Log4jLogger?
- 3. 如何以编程方式启用和禁用USB在Android应用程序
- 4. 我怎样才能启用禁用GPS在编程方式在Android?
- 5. 以编程方式开启/关闭GPS
- 6. 在Windows 7上以编程方式启用/禁用连接
- 7. 如何以编程方式在Android中启用/禁用辅助功能服务
- 8. 如何以编程方式启用/禁用Windows功能
- 9. 如何以编程方式启用/禁用Azure功能
- 10. 如何以编程方式启用/禁用IE代理设置?
- 11. 如何以编程方式启用/禁用移动数据
- 12. 如何以编程方式禁用/启用Android中的物理键盘?
- 13. 如何在android中以编程方式禁用拼写校正
- 14. 如何在android中以编程方式自动开启和关闭gps
- 15. 以编程方式检查iPhone是否已启用GPS
- 16. 如何在Android中以编程方式启用HSDPA?
- 17. 如何在Android中以编程方式启用动画
- 18. 以编程方式启用/禁用沉浸模式
- 19. 谷歌地图是以编程方式启用GPS?
- 20. 以编程方式启用GPS(无导航到位置设置)
- 21. 如何在android上以编程方式备份应用程序
- 22. 我可以通过我的应用程序以编程方式启用GPS吗?
- 23. 如何以编程方式禁用布局和其内容android
- 24. 如何以编程方式禁用android硬件按钮?
- 25. 以编程方式启用和禁用自动旋转?
- 26. 如何以编程方式禁用Android上的onClick处理程序AppWidget按钮
- 27. 如何启用Android的GPS编码
- 28. 以编程方式启用/禁用键盘声音和振动
- 29. Android的启用和禁用GPS
- 30. 如何在运行时以编程方式启用/禁用Firebug Lite?
哇太感谢你了,这是伟大的! – 2011-05-22 00:46:28