gpt4 book ai didi

Android:检测 GPS 何时打开/关闭(或当没有应用程序不再使用它时)

转载 作者:IT老高 更新时间:2023-10-28 23:34:38 24 4
gpt4 key购买 nike

我使用的是 Android 2.3.7,我正在尝试编写一个 BroadcastReceiver,它会在用户打开/关闭 GPS 时被调用(即:通过点击选项中的“使用 GPS 卫星”。

到目前为止,我所做的是:

1) 创建了以下广播接收器:

public class GPSStatusBroadcastReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context arg0, Intent arg1) {
Toast.makeText(arg0, "Broadcast received!", Toast.LENGTH_SHORT).show();

}
}

2) 将此添加到 android list 中的标签内:

<receiver android:name=".GPSStatusBroadcastReceiver"> 
<intent-filter>
<action android:name="android.location.PROVIDERS_CHANGED" />
</intent-filter>
</receiver>

现在的问题是它似乎不可靠。当我打开/关闭 GPS 时,onReceive() 方法有时只运行(我会说 1 次超时 3),其他时候它不会被调用。

我想知道是否有可靠的方法来检测 GPS 何时关闭/开启。

如果没有,最好至少在没有应用程序使用 GPS 时收到通知(即:当 gps 图标从状态栏中消失时,表明没有人在主动定位时)。

编辑:澄清:我不想在我的应用程序运行时执行此操作。我只是在打开/关闭 gps 时启动我的应用程序,执行它的操作然后终止,我不想订阅 LocationsUpdates...

最佳答案

在 API 级别 9 或更高级别上,您可以使用 LocationManager.PROVIDERS_CHANGED_ACTION :

Broadcast intent action when the configured location providers change. For use with isProviderEnabled(String). If you're interacting with the LOCATION_MODE API, use MODE_CHANGED_ACTION instead.

Constant Value: "android.location.PROVIDERS_CHANGED"

Source

关于Android:检测 GPS 何时打开/关闭(或当没有应用程序不再使用它时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15452084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com