权限拒绝:读取com.android.providers.media.MediaProvider uricontent://media/external/images/media/38
我在manifest.xml上添加了权限 但我仍然有同样的错误: 权限拒绝:读取com.android.providers.media.MediaProvider 请帮帮我 我的java类权限拒绝:读取com.android.providers.media.MediaProvider uricontent://media/external/images/media/38,android,Android,我在manifest.xml上添加了权限 但我仍然有同样的错误: 权限拒绝:读取com.android.providers.media.MediaProvider 请帮帮我 我的java类 package com.example.maymaa.mytest; +import.. public class Image extends AppCompatActivity { private static final int PICK_IMAGE =100;
package com.example.maymaa.mytest;
+import..
public class Image extends AppCompatActivity {
private static final int PICK_IMAGE =100;
Uri imageUri;
ImageView imageview1;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image);
imageview1=(ImageView)findViewById(R.id.imageview1);
button=(Button)findViewById(R.id.btphoto);
assert button != null;
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
openGallery();
}}
);}
private void openGallery()
{
Intent gallery= new Intent
(Intent.ACTION_PICK,MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(gallery, PICK_IMAGE);
}
@Override
protected void onActivityResult
(int requestcode,int resultcode,Inten data)
{
super.onActivityResult(requestcode,resultcode,data);
if(resultcode == RESULT_OK && requestcode==PICK_IMAGE){
imageUri =data.getData();
imageview1.setImageURI(imageUri);
}
}
}
我的活动
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:padding="10dp"
android:weightSum="1">
<ImageView
android:layout_width="361dp"
android:layout_height="255dp"
android:id="@+id/imageview1"
android:layout_weight="0.14" />
<Button
android:layout_width="180dp"
android:layout_height="wrap_content"
android:text="Choisir"
android:layout_gravity="center_horizontal"
android:onClick="btnclick"
android:id="@+id/btphoto"
/>
</LinearLayout>
我的代码不起作用
感谢您在清单文件中添加外部读/写权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
尝试此操作,将此代码放在setContentView之后的onCreate中,并将onCreate的其余代码放在else部分:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int hasWritePermission = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
int hasReadPermission = checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
List<String> permissions = new ArrayList<String>();
if (hasWritePermission != PackageManager.PERMISSION_GRANTED) {
permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
} else {
preferencesUtility.setString("storage", "true");
}
if (hasReadPermission != PackageManager.PERMISSION_GRANTED) {
permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE);
} else {
preferencesUtility.setString("storage", "true");
}
if (!permissions.isEmpty()) {
requestPermissions(permissions.toArray(new String[permissions.size()]), REQUEST_CODE_SOME_FEATURES_PERMISSIONS);
}
}
if(Build.VERSION.SDK\u INT>=Build.VERSION\u CODES.M){
int hasWritePermission=checkSelfPermission(Manifest.permission.WRITE\u外部存储);
int hasreadpowmission=checkSelfPermission(Manifest.permission.READ\u外部存储);
列表权限=新建ArrayList();
if(hasWritePermission!=已授予PackageManager.PERMISSION){
权限.add(Manifest.permission.WRITE\u外部存储);
}否则{
设置字符串(“存储”,“真”);
}
if(hasReadPermission!=已授予PackageManager.PERMISSION){
权限.add(Manifest.permission.READ\u外部存储);
}否则{
设置字符串(“存储”,“真”);
}
如果(!permissions.isEmpty()){
requestPermissions(permissions.toArray(新字符串[permissions.size()])、REQUEST\u CODE\u一些\u功能\u权限);
}
}
out side onCreate写入:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case REQUEST_CODE_SOME_FEATURES_PERMISSIONS: {
for (int i = 0; i < permissions.length; i++) {
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
System.out.println("Permissions --> " + "Permission Granted: " + permissions[i]);
} else if (grantResults[i] == PackageManager.PERMISSION_DENIED) {
System.out.println("Permissions --> " + "Permission Denied: " + permissions[i]);
}
}
}
break;
default: {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}
@覆盖
public void onRequestPermissionsResult(int-requestCode、字符串[]权限、int[]grantResults){
开关(请求代码){
案例请求\u代码\u某些\u功能\u权限:{
for(int i=0;i”+“授予的权限:”+权限[i]);
}else if(grantResults[i]==PackageManager.PERMISSION_拒绝){
System.out.println(“权限-->”+“权限被拒绝:”+Permissions[i]);
}
}
}
打破
默认值:{
super.onRequestPermissionsResult(请求代码、权限、授权结果);
}
}
}
我也有同样的问题,
已在manifext.xml中提供以下权限
**<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>**
**
**
谢谢
KrishHTML永远不会抛出错误。很抱歉,我在Androidour使用棉花糖时犯了一个错误:/n然后您需要通过编程向用户请求权限。请参考:张贴您活动的代码。我做到了。。但是问题没有解决,我也有同样的错误,否则我肯定你错过了一些许可