Android通知应用

时间:2011-03-31 11:23:50

标签: android android-activity notifications

我正在开发一个Android应用程序。每当用户安装/下载新的第三方应用程序时,我都必须记录任何新安装的应用程序名称。如果用户正在安装新应用,我该如何收到通知。提前谢谢。

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

3 个答案:

答案 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意图。