Android 添加的操作\u程序包\u不工作

Android 添加的操作\u程序包\u不工作,android,broadcastreceiver,android-manifest,installation-package,Android,Broadcastreceiver,Android Manifest,Installation Package,当用户安装我的应用程序时,我必须登录,因为我已经在清单中注册了ACTION\u PACKAGE\u添加了广播,并创建了一个接收器。但安装应用程序后,接收器不会触发。我尝试过注册广播动作包而不是包添加,而且效果很好。我已经阅读了大多数关于这方面的SO问题,并尝试过,但没有一个对我有效。我在下面给出了我的代码 清单 <receiver android:name=".AppInstallReceiver"> <intent-filter android:priori

当用户安装我的应用程序时,我必须登录,因为我已经在清单中注册了ACTION\u PACKAGE\u添加了广播,并创建了一个接收器。但安装应用程序后,接收器不会触发。我尝试过注册广播动作包而不是包添加,而且效果很好。我已经阅读了大多数关于这方面的SO问题,并尝试过,但没有一个对我有效。我在下面给出了我的代码

清单

 <receiver android:name=".AppInstallReceiver">
        <intent-filter android:priority="1">
            <action android:name="android.intent.action.PACKAGE_ADDED" />
            <action android:name="android.intent.action.PACKAGE_REPLACED" />
            <data android:scheme="package" />
        </intent-filter>
    </receiver>

这段代码有问题吗?

我想只有在你启动应用程序后,它才会起作用。因为如果不启动应用程序,您的广播接收器将无法初始化。我在某个地方读过它,有没有其他解决方案可以做到这一点?没有,实际上它还取决于您设备的ROM,因为几乎每个设备都有自己的定制安卓操作系统。所以,除非你有一个根设备,否则没有解决方案。@coderz似乎有一些方法。。检查此链接
 @Override
public void onReceive(Context context, Intent intent) {

    if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {
        String packageName = intent.getDataString();
        Log.i("Installed:", packageName + "package name of the program");
    }
    Log.d(TAG, "Action: " + intent.getAction());
    Uri data = intent.getData();
    Log.d(TAG, "The DATA: " + data);

}