有权运行活动的问题

时间:2011-08-21 17:27:45

标签: android permissions

我试图理解,权限如何在android中运行。我做了一个简单的项目:1个源文件和1个xml-layout。和

1)我定义了活动权限(活动名称为“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);
    }
    }

1 个答案:

答案 0 :(得分:1)

根据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" />