获取广播意图的应用程序名称
Getting app name that broadcast a intent
我正在开发一个跟踪 GPS 使用情况的应用程序(不仅是在 GPS 被打开时 on/off,还有位置请求)。
经过研究,我发现我可以通过在我的清单中使用以下代码来存档它。
<receiver android:name=".triggers.TriggerGPS">
<intent-filter>
<action android:name="android.location.GPS_ENABLED_CHANGE" />
</intent-filter>
</receiver>
这是有效的,每次应用程序请求 GPS 坐标时,我的 TriggerGPS class 都会被调用。
public class TriggerGPS extends BroadcastReceiver {
Calendar c = Calendar.getInstance();
@Override
public void onReceive(Context context, Intent intent) {
String currentDatetime = c.get(Calendar.DAY_OF_MONTH) + "/" + c.get(Calendar.MONTH) + "/" +
c.get(Calendar.YEAR) + " " + c.get(Calendar.HOUR_OF_DAY) + ":" +
c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND);
Log.d("---------log--------", "Intent ( " + intent.getAction() + " ) GPS Status onReceive : " + currentDatetime);
}
}
但我的应用程序应该创建一个报告,表明每个应用程序都在使用 GPS 以及应用程序每天使用 GPS 获取坐标的次数。
这里的问题是我不知道如何获取广播事件的应用程序名称。
有什么办法吗?
谢谢大家
The problem here is that I can't figure out how to get the app name that broadcast the event.
应用程序不会广播 Intent
。系统广播Intent
。您无法确定用户更改设备设置以启用或禁用位置提供程序的原因。毕竟,不必有特定的应用程序驱动的原因。用户可以简单地选择点击通知栏中的图块,进入“设置”并切换提供者状态,或者只是为了咯咯笑而改变状态。
我正在开发一个跟踪 GPS 使用情况的应用程序(不仅是在 GPS 被打开时 on/off,还有位置请求)。
经过研究,我发现我可以通过在我的清单中使用以下代码来存档它。
<receiver android:name=".triggers.TriggerGPS">
<intent-filter>
<action android:name="android.location.GPS_ENABLED_CHANGE" />
</intent-filter>
</receiver>
这是有效的,每次应用程序请求 GPS 坐标时,我的 TriggerGPS class 都会被调用。
public class TriggerGPS extends BroadcastReceiver {
Calendar c = Calendar.getInstance();
@Override
public void onReceive(Context context, Intent intent) {
String currentDatetime = c.get(Calendar.DAY_OF_MONTH) + "/" + c.get(Calendar.MONTH) + "/" +
c.get(Calendar.YEAR) + " " + c.get(Calendar.HOUR_OF_DAY) + ":" +
c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND);
Log.d("---------log--------", "Intent ( " + intent.getAction() + " ) GPS Status onReceive : " + currentDatetime);
}
}
但我的应用程序应该创建一个报告,表明每个应用程序都在使用 GPS 以及应用程序每天使用 GPS 获取坐标的次数。
这里的问题是我不知道如何获取广播事件的应用程序名称。
有什么办法吗?
谢谢大家
The problem here is that I can't figure out how to get the app name that broadcast the event.
应用程序不会广播 Intent
。系统广播Intent
。您无法确定用户更改设备设置以启用或禁用位置提供程序的原因。毕竟,不必有特定的应用程序驱动的原因。用户可以简单地选择点击通知栏中的图块,进入“设置”并切换提供者状态,或者只是为了咯咯笑而改变状态。