2014-01-23 42 views
2

经过几个小时的使用ADT v22.3.0-887826从sdcard中读取某些内容后,我只能认为我的清单已被忽略。将4行添加到hello世界项目。为什么android模拟器忽略我的清单权限?

一个在清单

<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));    
} 

输出为 “许可:假”

+1

我不是100%的这一点,但你有你的AVD的SD卡图像?他们没有拿出一个“脱离包装”这样说话,可能是问题所在。 – MattMatt

回答

2

您应该使用

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

而不是

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

当您希望您的应用向其他应用授予某些权限时使用“permission”标记。

“使用许可权”,当你问一些许可,前read_external_storage,互联网,传感器使用等

+0

自Kit Kit后需要READ_EXTERNAL_STORAGE,但包含在WRITE_EXTERNAL_STORAGE中。我宁愿不要求写信 – hiebra

+0

奥普抱歉,主要的是“使用许可”,而不是“permision”。这是从我的代码复制错误:)) 用于当您希望您的应用程序给某些reasson的其他应用程序的某些权限。 用于请求某个权限,例如read_external_storage,Internet,传感器等。 – Bri6ko

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