9

AndroidアプリケーションでBroadcastReceiverを使用していますが、JB4.1でアプリを実行しています。

マニフェストで私はとして登録しました

<receiver android:name=".ThemeInstalledBroadcastReceiver" android:enabled="true">
    <intent-filter android:priority="100">
        <action android:name="android.intent.action.PACKAGE_ADDED" />
        <action android:name="android.intent.action.PACKAGE_REMOVED" />
        <data android:scheme="package" />
    </intent-filter>
</receiver>

アプリケーションをインストールすると、ThemeInstalledBroadcastReceiverクラスがトリガーされますが、テーマをインストールすると、ThemeInstalledBroadcastReceiverがトリガーされません。しかし、このアプリケーションはJB4.2で実行すると正常に動作します

私のReceiverコードは次のようになります

public class ThemeInstalledBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, final Intent arg1) {
        System.out.println("Mass_TC inside InstalledBroadcastReceiver res " + arg1.getAction().equals(Intent.ACTION_PACKAGE_ADDED) );
        System.out.println("Mass_TC apkid " + arg1.getData().getEncodedSchemeSpecificPart() + " intent : " + arg1);

    }

}

アプリをインストールしたときのログ

I/System.out(19647): Mass_TC apkid com.example.ttest intent : Intent { act=android.intent.action.PACKAGE_ADDED dat=package:com.example.ttest flg=0x8000010 cmp=com.myrrom.themechooser/.InstalledBroadcastReceiver (has extras) }
I/System.out(19647): Mass_TC deleting apkid  : com.example.ttest x : 0
I/System.out(19647): Mass_TC inside InstalledBroadcastReceiver res true
I/System.out(19647): Mass_TC apkid com.example.test_fa intent : Intent { act=android.intent.action.PACKAGE_ADDED dat=package:com.example.test_fa flg=0x8000010 cmp=com.myrrom.themechooser/.InstalledBroadcastReceiver (has extras) }
I/System.out(19647): Mass_TC deleting apkid  : com.example.test_fa x : 0

しかし、テーマをインストールすると、ログが取得されません

4

1 に答える 1

0

私が解決策を見つけた方法。

インテントフィルターにカテゴリを追加しました

<category android:name="com.tmobile.intent.category.THEME_PACKAGE_INSTALL_STATE_CHANGE" />
于 2013-03-14T10:34:23.090 に答える