2

安装新应用程序时,我的 BroadcastReceiver 使用简单的过滤器获取包数据:

filter = new IntentFilter();
filter.addAction(Intent.ACTION_PACKAGE_ADDED);
filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
filter.addDataScheme("package");

receiver = new newPackageReceiver();
registerReceiver(receiver, filter);

...

public class newPackageReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        final String info = intent.getData().toString();
            ...
            }
    }

大多数设备都调用了 BroadcastReceiver ......但是,使用此设备(仅限日文,抱歉),永远不会调用 onReceive。

  • 型号:索尼 SO-03D
  • 安卓版本:4.0.4

该设备没有可用的更新......有什么想法吗?

4

1 回答 1

1

也许这有帮助。尝试将接收器添加到清单中。

<receiver android:name=".YourReceiver">
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_INSTALL" />
        <action android:name="android.intent.action.PACKAGE_ADDED" />
        <data android:scheme="package"/>
    </intent-filter>
</receiver>

在 YourReceiver 类中:

public class YourReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String act = intent.getAction();
        if (Intent.ACTION_PACKAGE_ADDED.equals(act) || Intent.ACTION_PACKAGE_REMOVED.equals(act)) {
            //Do what you want
        }
}

我希望这会有所帮助,但似乎问题出在此设备的 rom 上。

于 2014-12-17T13:16:51.970 回答