1

我想在用户单击按钮时从我的应用程序中打开应用程序信息页面。我在 Manifest 中使用了这个权限。但是当我点击按钮时,应用程序崩溃了。

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<uses-permission android:name="oppo.permission.OPPO_COMPONENT_SAFE"/>
<uses-permission android:name="com.huawei.permission.external_app_settings.USE_COMPONENT"/>
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />

我在活动类中指定了这些意图

 Intent().setComponent(ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity"))
 Intent().setComponent(ComponentName("com.coloros.safecenter", "com.coloros.safecenter.startupapp.StartupAppListActivity"))
 Intent().setComponent(ComponentName("com.oppo.safe", "com.oppo.safe.permission.startup.StartupAppListActivity"))

日志是

E/UncaughtException: java.lang.SecurityException: Permission Denial: starting Intent { cmp=com.coloros.safecenter/.startupapp.StartupAppListActivity } from ProcessRecord{680ba72 20236:com.kintapp.kint/u0a220} (pid=20236, uid=10220) requires oppo.permission.OPPO_COMPONENT_SAFE
        at android.os.Parcel.createException(Parcel.java:1966)
        at android.os.Parcel.readException(Parcel.java:1934)
        at android.os.Parcel.readException(Parcel.java:1884)
        at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:3688)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1671)
        at android.app.Activity.startActivityForResult(Activity.java:4722)
        at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676)
        at android.app.Activity.startActivityForResult(Activity.java:4654)
        at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663)
        at android.app.Activity.startActivity(Activity.java:5041)
        at android.app.Activity.startActivity(Activity.java:5009)
        at com.kintapp.kint.activitykotlin.NotificationCenterActivity$openPowerManagementAndAllowNotification$1.onClick(NotificationCenterActivity.kt:69)
        at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:203)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:226)
        at android.app.ActivityThread.main(ActivityThread.java:7231)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:500)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:913)
     Caused by: android.os.RemoteException: Remote stack trace:
        at com.android.server.am.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:1964)
        at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:1106)
        at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:667)
        at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:2051)
        at com.android.server.am.ActivityStarter.execute(ActivityStarter.java:605)

如何解决这个问题?

4

0 回答 0