私の最初の質問は基本的にこの線に沿って何かだった:その質問は私の満足に答えたClearing and setting the default home applicationコンポーネントを有効または無効にする方法は?
、しかし、私は答えに難易度の理解を抱えている事は、あなたが有効にしてコンポーネントを無効にする方法ですJavaコードのマニフェストから?
私の最初の質問は基本的にこの線に沿って何かだった:その質問は私の満足に答えたClearing and setting the default home applicationコンポーネントを有効または無効にする方法は?
、しかし、私は答えに難易度の理解を抱えている事は、あなたが有効にしてコンポーネントを無効にする方法ですJavaコードのマニフェストから?
パッケージマネージャを使用することにより、有効成分のための無効コンポーネントとPackageManager.COMPONENT_ENABLED_STATE_ENABLEDためPackageManager.COMPONENT_ENABLED_STATE_DISABLED 2つのフラグがありますmenifestファイル で宣言されたコンポーネントを有効または無効にすることができます。
PackageManager pm = getApplicationContext().getPackageManager();
ComponentName componentName = new ComponentName("com.app",
".broadcast_receivers.OnNetworkChangedReceiver");
pm.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
アンドロイドマニフェスト:
<receiver android:name=".broadcast_receivers.OnNetworkChangedReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
にするために、より一般的な実装Pawanアプローチを取る:
public static void setComponentState(Context context, String packageName , String componentClassName, boolean enabled)
{
PackageManager pm = context.getApplicationContext().getPackageManager();
ComponentName componentName = new ComponentName(packageName, componentClassName);
int state = enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
pm.setComponentEnabledSetting(componentName,
state,
PackageManager.DONT_KILL_APP);
}
同じコードを両方可能にし、コンポーネントを無効にし、または微妙な違いがありますか? – scibor
あなたは答えました – scibor
無効なコンポーネントPackageManager.COMPONENT_ENABLED_STATE_DISABLED および有効なコンポーネントPackageManager.COMPONENT_ENABLED_STATE_ENABLED –