我一直在尝试构建一个 android 应用程序,当用户以超过 20MPH 的速度行驶时,它不允许设备用户从设备上的任何位置更改/编辑 GPS 设置。
一旦用户超过 20MPH,用户将无法从通知栏或内部设置禁用 GPS 设置。
如何使用系统超级管理员/管理员权限来处理 Android App 中 GPS 的启用/禁用事件?请帮忙。
提前致谢。
我一直在尝试构建一个 android 应用程序,当用户以超过 20MPH 的速度行驶时,它不允许设备用户从设备上的任何位置更改/编辑 GPS 设置。
一旦用户超过 20MPH,用户将无法从通知栏或内部设置禁用 GPS 设置。
如何使用系统超级管理员/管理员权限来处理 Android App 中 GPS 的启用/禁用事件?请帮忙。
提前致谢。
为 GPS 启用或禁用注册一个侦听器。
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
public void onProviderEnabled(String provider) {
Toast.makeText(this, "Enabled new provider " + provider,
Toast.LENGTH_LONG).show();
}
public void onProviderDisabled(String provider) {
Toast.makeText(this, "GPS disconnected", Toast.LENGTH_LONG);
Toast.makeText(getApplicationContext(), "Connected",
Toast.LENGTH_LONG);
Toast.makeText(this, "Please Switch on GPS." + provider,
Toast.LENGTH_LONG).show();
}
并添加它以监听 GPS 状态的变化
locationManager.addGpsStatusListener(gpsStatusListener)
当 USER 禁用 GPS 时,您将通过代码启用它。启用 GPS 的代码是
Settings.Secure.setLocationProviderEnabled(contentResolver, LocationManager.GPS_PROVIDER,true);
使用适当的权限来执行此操作。
或者,您必须设计自己的 ROM,实现某种 GPS 锁定,仅适用于您自己的应用程序。
作为上述所有示例,您可以从https://github.com/sms2000/GPSToggler获取我的 GPSToggler 。它或多或少地工作,可以根据您的需要采用。
在清单文件中使用这些权限
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />