为什么android模拟器会忽略我的清单权限?

时间:2014-01-23 03:40:49

标签: android android-permissions

使用ADT v22.3.0-887826打了几个小时从SD卡读取内容后,我只能认为我的清单被忽略了。在hello world项目中添加4行。

清单中有一个

<permission android:name="android.permission.READ_EXTERNAL_STORAGE"></permission>

MainActivity.java中的三个

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String permission = "android.permission.READ_EXTERNAL_STORAGE";
    int res = getBaseContext().checkCallingOrSelfPermission(permission);
    System.out.println("permission:"+(res == PackageManager.PERMISSION_GRANTED));            
}

输出为“permission:false”

2 个答案:

答案 0 :(得分:2)

你应该使用

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

而不是

<permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
当您希望自己的应用为其他应用提供某些权限时,会使用

“permission”标记。

当你要求许可时,使用

“uses-permission”,ex read_external_storage,internet,sensors等。

答案 1 :(得分:0)

  

为什么android模拟器会忽略我的清单权限?

您没有正确设置权限,应该是这样的:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

下面的链接应该更好地帮助您理解为什么您的权限应该这样写。

http://developer.android.com/guide/topics/security/permissions.html

http://developer.android.com/guide/topics/manifest/uses-permission-element.html

http://developer.android.com/guide/topics/manifest/manifest-intro.html