【发布时间】:2011-03-31 11:23:49
【问题描述】:
我目前正在开发一个安卓应用程序。每当用户安装/下载新的第三方应用程序时,我都必须记录任何新安装的应用程序名称。如果用户正在安装新应用程序,我如何获得通知。提前致谢。
Java 文件
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
【问题讨论】:
-
您的代码中是否有任何启动器活动?请您分享您的整个代码,因为我尝试了您的代码,但它不适合我。
-
如果应用程序未在后台运行,如何触发 onReceive。如果应用程序正在运行用于 Package_ADDED 和 REMOVED 工作的 onReceive 方法。但我需要触发即使应用程序未运行,请帮助我
标签: android android-activity notifications