首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过ADB或自己的应用程序权限拒绝打开应用程序活动/屏幕

无法通过ADB或自己的应用程序权限拒绝打开应用程序活动/屏幕
EN

Stack Overflow用户
提问于 2018-03-14 02:27:50
回答 1查看 758关注 0票数 1

我正在尝试使用adb打开一些应用程序活动:

代码语言:javascript
复制
adb shell am start -n com.package.name/com.package.settings.LanguageSettingsScreen

但我仍然收到错误:

代码语言:javascript
复制
Security exception: Permission Denial: starting Intent { flg=0x10000000 cmp=com.package.name/com.package.settings.LanguageSettingsScreen } from null (pid=2524, uid=2000) requires com.application.settings.permission.ACCESS_SETTING

java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.package.name/com.package.settings.LanguageSettingsScreen } from null (pid=2524, uid=2000) requires com.application.settings.permission.ACCESS_SETTING
    at com.android.server.am.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:1918)
    at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:629)
    at com.android.server.am.ActivityStarter.startActivityLocked(ActivityStarter.java:409)
    at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:1268)
    at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:5960)
    at com.android.server.am.ActivityManagerShellCommand.runStartActivity(ActivityManagerShellCommand.java:424)
    at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:142)
    at android.os.ShellCommand.exec(ShellCommand.java:96)
    at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:18707)
    at android.os.Binder.shellCommand(Binder.java:581)
    at android.os.Binder.onTransact(Binder.java:481)
    at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:4767)
    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3797)
    at android.os.Binder.execTransact(Binder.java:682)

所以我认为如果我用这个权限构建自己的应用程序--它会有帮助,所以我创建了新的应用程序,添加了用于注入此活动的按钮,并在清单中添加了以下权限:

代码语言:javascript
复制
<uses-permission android:name="com.package.settings.permission.ACCESS_SETTING" />
<permission
    android:name="com.application.settings.permission.ACCESS_SETTING"
    android:description="@string/permission_description"
    android:label="ExampleLabel"
    android:protectionLevel="dangerous" />

但它当然不起作用。如果不进行修改,我的应用程序将崩溃(日志中的权限也会出现同样的错误),并且使用此权限,我无法安装此应用程序:

代码语言:javascript
复制
INSTALL_FAILED_DUPLICATE_PERMISSION

因为此权限属于另一个应用程序。

此应用程序(我要打开它)的AndroidManifest中的活动信息:

代码语言:javascript
复制
<activity android:name="com.package.settings.LanguageSettingsScreen" android:label="@string/settings_language_title" android:theme="@style/SettingsTheme" android:exported="true" android:permission="com.application.settings.permission.ACCESS_SETTING">
-<intent-filter>
<action android:name="com.package.settings.SETTINGS_LANGUAGE_SCREEN"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>

那么有没有办法打开这个屏幕/活动呢?

我开始学习android应用程序开发,所以可能我不知道我能做什么,不能做什么。

EN

回答 1

Stack Overflow用户

发布于 2019-02-02 12:57:54

INSTALL_FAILED_DUPLICATE_PERMISSION可能是因为您正在清单中重新定义权限。删除:

代码语言:javascript
复制
<permission
    android:name="com.application.settings.permission.ACCESS_SETTING"
    android:description="@string/permission_description"
    android:label="ExampleLabel"
    android:protectionLevel="dangerous" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49263355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档