1

現在、setApplicationEnabledSetting(String, int, int) を介してアプリケーションを無効にしています

アプリケーションは実際にそれ自体を無効にしています。アプリを再インストールすると、アプリが再び有効になると思いますが、そうではありません。

これを機能させるためにマニフェストに必要な特定の設定はありますか。(有効に設定してみました= true)

ありがとう

現在、ブロードキャスト レシーバー以外のすべてのコンポーネントを無効にしており、インストール プロセスをキャッチして、他のすべてのコンポーネントを再度有効にしようとしています。控えめに言ってもこれは厄介です

4

1 に答える 1

0

これを行う 1 つの方法は、パッケージ インストール ブロードキャストをリッスンし、それに応じてアクションを実行することです。

  • Intent.ACTION_PACKAGE_ADDED放送受信機で聞いてください。
  • 新しく追加されたパッケージが自分のものである場合は、他のコンポーネントを有効にします。

マニフェスト:

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

レシーバー:

public class MyReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();
        if (Intent.ACTION_PACKAGE_ADDED.equals(action)) {
            final boolean replacing = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false);
            final String packageName = intent.getData().getSchemeSpecificPart();
            if (replacing && "my.package.name".equals(packageName)) {
                // Re-enable the other components
            }
        }
    }

}

お役に立てれば。

于 2013-10-30T12:06:05.897 に答える