我正在尝试使用下面的代码从我的系统应用程序的服务类中禁用 Android 组件。它在 A13 及更早版本中工作正常,但它不会禁用 A14 中的组件。
我还在清单中添加了
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
,但仍然面临同样的问题。 A14 是否需要进行任何具体更改?我检查了文档但找不到相关更改。我还尝试将 targetSdkVersion 设置为 34 和 33,但它没有解决问题并出现异常java.lang.IllegalArgumentException: Component class com.android.internal.app.ChooserActivity does not exist in android
。
ComponentName appChooser = new ComponentName(
"android",
"com.android.internal.app.ChooserActivity");
mPackageManager.setComponentEnabledSetting(appChooser, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
Android 14 中 ChooserActivity 的路径似乎已更改。如下所示更新组件详细信息解决了我的问题。
ComponentName appChooser = new ComponentName(
"com.android.intentresolver",
"com.android.intentresolver.chooser.ChooserActivity");
mPackageManager.setComponentEnabledSetting(appChooser,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);