gpt4 book ai didi

android - gps打开/关闭时如何触发广播接收器?

转载 作者:IT王子 更新时间:2023-10-29 00:00:55 26 4
gpt4 key购买 nike

public class BootReceiver extends BroadcastReceiver  {

@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {
Toast.makeText(context, "in android.location.PROVIDERS_CHANGED",
Toast.LENGTH_SHORT).show();
Intent pushIntent = new Intent(context, LocalService.class);
context.startService(pushIntent);
} else {
Toast.makeText(context, "not in android.location.PROVIDERS_CHANGED",
Toast.LENGTH_SHORT).show();
Intent pushIntent = new Intent(context, LocalService.class);
context.startService(pushIntent);
}
}

@Override
public void onLocationChanged(Location arg0) {

}
}

在我的应用程序中,我需要在 gps 打开/关闭时触发广播接收器。 调查此事并建议在应用中实现的最佳方案。

最佳答案

当用户想要触发任何打开/关闭位置提供的操作时,这很有用

您应该在 list 中添加此操作

<action android:name="android.location.PROVIDERS_CHANGED" />

添加此操作后,您可以触发广播接收器

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

并且在您的 BroadcastReceiver 类中,您必须在该类中实现 LocationListener,如下所示..

public class GpsLocationReceiver extends BroadcastReceiver {        
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {
Toast.makeText(context, "in android.location.PROVIDERS_CHANGED",
Toast.LENGTH_SHORT).show();
Intent pushIntent = new Intent(context, LocalService.class);
context.startService(pushIntent);
}
}
}

关于android - gps打开/关闭时如何触发广播接收器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20673620/

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