我正在为我们的工作人员编写小应用程序,在地形中工作,我有一些想法。我们希望跟踪他们的位置,以便更好地进行后勤和更好的工作控制。
应用程序对我来说不是问题,而是打开/关闭GPS /位置管理器的按钮。是否有可能将GPS始终设置为ON,无法关闭,或者可能会检测到关闭,并且每隔几秒钟将GPS重新打开(?bash脚本?)。
我根植了我的设备(GALAXY GIO),我可以完全访问CLI。我知道如何禁用/启用几乎所有设备,但GPS仍然让我感到困惑......
是否可以在不更改ROM的情况下执行此类操作?目前的ROM是2.3.6姜饼。
答案 0 :(得分:1)
使用services
并将此代码放在your services.
String provider = Settings.Secure.getString(getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if (!provider.contains("gps")) {
// if gps is disabled
final Intent poke = new Intent();
poke.setClassName("com.android.settings","com.android.settings.widget.SettingsAppWidgetProvider");
poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
poke.setData(Uri.parse("3"));
sendBroadcast(poke);
/*
* Toast.makeText(getApplicationContext(), "GPS On Success",
* Toast.LENGTH_SHORT).show();
*/
}
答案 1 :(得分:1)
除了漏洞利用(看起来只适用于2.2和2.3版本)和自定义ROM(如果你能找到一个这样做),没有可靠的方法来做你需要的东西。
在Android中,用户可以控制大多数功能。 Android的目的是个人使用,它不太适合这种类型的东西。您最好切换到允许您这样做的另一个平台(例如:BlackBerry),或者甚至通过蓝牙从始终打开的GPS跟踪设备读取数据。他们仍然可以禁用蓝牙,因此您需要搜索完全自主的GPS跟踪设备(市场上有许多可用的,其中一些还有SIM卡,因此他们可以实时发送数据)。
作为最后一点,我要说大多数工作人员会很乐意启用GPS,如果他们需要这样做,并且如果他们禁用它,你仍然可以检测它并报告给WS或日志,以便稍后请他们解释。