我正在开发一款跟踪GPS使用情况的应用程序(不仅是GPS打开/关闭,而且还有位置请求)。
经过研究后,我发现我可以使用清单中的以下代码对其进行归档。
<receiver android:name=".triggers.TriggerGPS">
<intent-filter>
<action android:name="android.location.GPS_ENABLED_CHANGE" />
</intent-filter>
</receiver>
这是有效的,每当应用请求GPS坐标时,我的TriggerGPS类被调用。
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每天获取de坐标的次数。
这里的问题是我无法弄清楚如何获得广播该活动的应用名称。
有什么方法可以做到吗?
谢谢大家。
答案 0 :(得分:1)
这里的问题是我无法弄清楚如何获取广播事件的应用名称。
应用不会广播Intent
。系统广播Intent
。您无法确定用户更改其设备设置以启用或禁用位置提供程序的原因。毕竟,没有特定的应用驱动原因。用户可以简单地选择点击通知阴影中的磁贴,进入设置并切换提供者状态,或以其他方式改变状态只是为了咯咯笑。