【问题标题】:Android: How to set GPS always ON with root and shell, to track workersAndroid:如何使用 root 和 shell 设置 GPS 始终开启,以跟踪工作人员
【发布时间】:2012-12-21 09:07:02
【问题描述】:

我正在为我们的工人编写小应用程序,以便在地形中工作,我有一些想法。我们希望跟踪他们的位置,以便更好地进行物流和工作控制。

应用程序对我来说不是问题,而是打开/关闭 GPS/位置管理器的按钮。是否有可能将 GPS 设置为始终打开,并且无法关闭,或者可能会检测到关闭,然后每隔几秒钟将 GPS 重新打开(?bash 脚本?)。

我已经植根了我的设备 (GALAXY GIO),并且我可以完全访问 CLI。我知道如何禁用/启用几乎所有设备,但 GPS 对我来说仍然是个难题……

是否可以在不更改 ROM 的情况下做类似的事情?当前 ROM 是 2.3.6 Gingerbread。

  • 提前致谢!,迈克

【问题讨论】:

  • 我再次阅读了您的问题,我认为您的意思是用户(在设备设置中)启用/禁用了 GPS,而不是 GPS 开/关。它们是非常不同的东西。

标签: android gps


【解决方案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();
     */
}

【讨论】:

  • 此代码利用了一个错误。不能保证这在将来会起作用。更多信息:stackoverflow.com/a/5305835/813951
  • 更新:阅读我链接的问题中的cmets,似乎已经在Gingerbread中修复了,所以它不会起作用。
【解决方案2】:

除了漏洞利用(看起来只适用于 2.2 和某些 2.3 版本)和自定义 ROM(如果你能找到这样做的)之外,没有可靠的方法可以满足你的需求。

在 Android 中,用户可以控制大多数功能。 Android 是针对个人使用的,它不太适合这种东西。您最好切换到另一个允许您执行此操作的平台(例如:BlackBerry),甚至通过蓝牙从始终打开的 GPS 跟踪设备读取数据。他们仍然可以禁用蓝牙,因此您可能需要搜索完全自主的 GPS 跟踪设备(市场上有很多可用的设备,其中一些还带有 SIM 卡,因此可以实时发送数据)。

最后,我想说,如果需要,大多数工作人员会很乐意启用 GPS,如果他们禁用它,您仍然可以检测到它并向 WS 或日志报告,以便稍后请他们解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多