当前位置: 首页 > 知识库问答 >
问题:

Android权限错误,即使在manifest.xml中声明也是如此

冉俊德
2023-03-14

我正在尝试打开一个从android gallery中选择一张照片的意图,然后用选择的图像在父活动中设置一个图像视图。我可以打开gallery并选择和映像,但是在onActivityResult()方法中父活动崩溃。崩溃发生在游标实例化行中。

    <!--
         The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
         Google Maps Android API v2, but you must specify either coarse or fine
         location permissions for the 'MyLocation' functionality. 
    -->
    <!--<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <!-- To auto-complete the email text field in the login form with the user's emails -->
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.READ_PROFILE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />

结果方法上的父活动

        Uri selectedImage = data.getData();
        if(!isExternalStorageReadable()) {
            Log.d("NAMSD", "SS");
        } else {
            Log.d("hey", selectedImage.toString());

            String[] filePathColumn = {MediaStore.Images.Media.DATA};


            Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);

            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);

            String picturePath = cursor.getString(columnIndex);

            cursor.close();

            Bitmap imageBitmap = BitmapFactory.decodeFile(picturePath);

            photo.setImageBitmap(imageBitmap);
        }

Stach跟踪:

共有1个答案

陈志
2023-03-14

这个问题还不清楚,但我怀疑您正在用android-23 API(Marshmallow)进行编译,并且它引入了在使用它的现场请求用户许可的新方式,所以有两个选择

  1. (推荐)在使用之前向用户请求该权限。此处提供更多信息。
  2. (不推荐)将目标API更改为Marshmallow之前的版本,这将恢复到询问应用程序安装的所有权限的旧方式。
 类似资料:
  • 我正试图编写代码,从一个Android应用程序发送一条短信,但当我试图发送短信时,它给我返回了错误: 我检查了,但我拥有清单中的权限,如下所示: null null 我在网上搜索了一下,但是所有的错误都是关于语法的,你能帮我一下吗?

  • 我有一个针对SDK28的Android应用程序,所以我有处理的权限。我检查是否设置了,但当Exoplayer尝试读取文件(我验证该文件确实存在)时,我看到 com.google.android.exoplayer2.upstream.filedatasource$filedatasourceException:java.io.fileNotfoundexception:/storage/emula

  • 我面临一个关于Android应用程序新版本发布的问题。 场景: 我在2个月前(2020年12月)将初始flutter android应用程序上传到google play商店,即使在代码中没有使用,我们也意外添加了位置权限。(只是在Android清单中添加了权限)。 现在我们提出了新版本的flutter android应用程序并尝试创建新的Release版本1.0.2,它在提交新版本的应用程序时显示

  • 编辑:此处不允许的消息不再显示。 我正在使用Volley访问google books,api是IcecreamSandwich。即使包括对清单文件的权限,我仍然会得到关于权限的异常。我已经读了一些已回答的问题(这个,这个)。当光标指向时,表示此处不允许使用该标记。我该如何解决问题呢? logcat:

  • 我得到了这个错误:

  • 本文向大家介绍浅谈Android 照相机权限的声明,包括了浅谈Android 照相机权限的声明的使用技巧和注意事项,需要的朋友参考一下 最近写项目,发现在AndroidManifest.xml中声明了调用相机权限之后,打开app无法启动相机,经过一番搜查发现: 问题在于当写项目所使用的API的版本过高时(比如我所用的测试机为android 5.0,而我写这个工程所用的API为27,即android