我正在开发一个Android应用程序。每当用户安装/下载新的第三方应用程序时,我都必须记录任何新安装的应用程序名称。如果用户正在安装新应用,我该如何收到通知。提前谢谢。
public class ApplicationBroadcastService extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
System.out.print("-------");
}
}
<receiver android:name=".applicationlog.ApplicationBroadcastService">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_CHANGED" />
<action android:name="android.intent.action.PACKAGE_INSTALL" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
</intent-filter>
</receiver>
但是当我安装/卸载任何应用程序时,我仍然没有输入onReceive方法。
以下是解决方案:
我在Manifest文件中做了一些小改动。
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_CHANGED" />
<action android:name="android.intent.action.PACKAGE_INSTALL" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" />
</intent-filter>
现在它正常工作.. :) 再次感谢@willytate
答案 0 :(得分:8)
阿贾伊,
您需要使用意图过滤器设置BroadcastReceiver
以接收以下操作:ACTION_PACKAGE_ADDED
然后从BroadcastReceiver的onReceive()
方法启动Notification
答案 1 :(得分:6)
看看intent documentation。您正在寻找ACTION_PACKAGE_INSTALL
(似乎从未使用过,请参阅评论)和ACTION_PACKAGE_REMOVED
。
答案 2 :(得分:3)
您可以听取android.intent.action.PACKAGE_ADDED
意图。