android - 运行 Activity 的权限问题

标签 android permissions

我正在尝试了解权限在 android 中的工作原理。我做了一个简单的项目:1 个源文件和 1 个 xml 布局。并且:

1) 我定义 Activity 的权限( Activity 名称是“AndroidTestActivity”,权限名称是“android.permission.MY_PERMISSION”),

2) 我为activity()定义uses-permission, 我的问题是:当我运行 AndroidTestActivity 时,logcat 说:

08-19 19:39:18.311: WARN/ActivityManager(59): Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example.Android.Test/.AndroidTestActivity } from null (pid=-1, uid=-1) requires android.permission.MY_PERMISSION

为什么我会收到权限拒绝?我取得了使用许可,这还不够吗?

这是 AndroidManifest 源代码:

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.Android.Test" android:versionCode="1"
    android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />
    <permission android:name="android.permission.MY_PERMISSION" android:protectionLevel="normal"></permission>
    <uses-permission android:name="android.permission.MY_PERMISSION"></uses-permission>

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".AndroidTestActivity" android:permission="android.permission.MY_PERMISSION"
        android:label="Sample menus application">
             <intent-filter> 
                 <action android:name="android.intent.action.MAIN"/>
                 <category android:name="android.intent.category.LAUNCHER" /> 
             </intent-filter> 
        </activity>
    </application>
</manifest>

这是 AndroidTestActivity 源代码:

  public class AndroidTestActivity extends Activity {
    TextView tv;
    Menu myMenu=null;
    @Override
    public void onCreate(Bundle savedlnstanceState) {
        super.onCreate(savedlnstanceState);
        setContentView(R.layout.main);
    }
    }

最佳答案

根据docs它应该像这样:

<permission android:name="com.example.Android.Test.permission.MY_PERMISSION"
     android:protectionLevel="normal" 
     android:description="Some description" 
     android:label="Some label" />
<uses-permission 
     android:name="com.example.Android.Test.permission.MY_PERMISSION" />

关于android - 运行 Activity 的权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7139851/

相关文章:

django - 如何重置 Django 管理员密码?

java - NFC 权限错误

android - 是否存在不可操作的设备时间?

java - 在创建 fragment 时使用 ConstraintLayout

android - 如何获取 ListView 中 EditText 的文本?

permissions - 目录/文件权限松散 : pitfalls, 安全问题?

android - 如何删除 google play store 中的 beta 测试应用程序?

android - 突然收到 dalvik 错误,例如无法解析虚拟方法

permissions - 在 Fedora 31 中,如何为 Podman 容器中运行的 nginx 设置权限?

c# - 以编程方式列出项目多个用户权限(共享点)