我需要接收系统发送的隐式广播(ACTION_PACKAGE_ADDED),以便检测应用程序的安装并执行一些代码。我使用了以下代码:
public class Receiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// It will trigger when any app is installed
Uri data = intent.getData();
String packageAdv = data.getEncodedSchemeSpecificPart();
//some code...
}
}
在我的
Manifest
文件中,我声明了我的接收器:<receiver android:name="com.myapp.Receiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<data android:scheme="package"/>
</intent-filter>
</receiver>
在8.0 Oreo版本之前,一切都正常运作。现在,我必须通过使用
registerReceiver
显式地注册我的接收器。我该怎么做?如果有示例代码将不胜感激。
Receiver r = new Receiver(); //继承自BroadcastReceiver类 IntentFilter i = new IntentFilter("android.intent.action.PACKAGE_ADDED"); i.addDataScheme("package"); ctx.registerReceiver(r, i);
? - Nolesh