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

计算Android平板电脑上的所有图片

沈永贞
2023-03-14
public int findAnyPictures(){
    int count = 0;
    final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID };
    final String orderBy = MediaStore.Images.Media._ID;
    //Stores all the images from the gallery in Cursor
    Cursor cursor = getContentResolver().query(
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,
            null, orderBy);
    //Total number of images
    if (cursor != null){
        count = cursor.getCount();
    }
    cursor.close();
    return count;
}
 public int findAnyVideos() {
        int vidsCount = 0;
        Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
        String[] projection = { MediaStore.Video.VideoColumns.DATA };
        Cursor cursor = mContext.getContentResolver().query(uri, projection, null, null, null);
        if (cursor != null) {
            vidsCount = cursor.getCount();
            cursor.close();
        }
        return vidsCount;
    }

当调用find any pictures时,它似乎抛出了一个运行时异常,我不知道为什么它会告诉我我没有适当的权限。我已经在android manifest中包含了它提到的权限,但我不知道grantUriPermission()是什么?下面是堆栈跟踪

 

共有1个答案

韦澄邈
2023-03-14

好吧,这告诉你问题所在

requires android.permission.READ_EXTERNAL_STORAGE

您必须在运行时请求Android API23+(Android6.0+)的权限。更多相关信息,请参见:https://developer.android.com/training/permissions/requesting.html

if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {

    requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
        REQUEST_CODE);
}

您将在OnRequestPermissionsResult中获得答案。

 类似资料:
  • Play developer控制台中显示: 您的APK似乎不是为平板电脑设计的 但是我已经将布局添加到layout-sw600dp、layout-sw600dp-land、layout-sw720dp和layout-sw720dp-land文件夹中。完整清单(原样): 我的APP截图: 虽然这款应用似乎可以在平板电脑上运行(我只在emulator上进行了测试),但要满足播放标准,必须做些什么呢?

  • 我的代码只会在三星Galaxy平板电脑上崩溃(例如SM-P601、Android4.4.2)。 崩溃的代码是这一行: 另一个失败的代码只是在OnClick方法中: null

  • Google Play表示,我的应用程序不是为平板电脑设计的:“你的APK应该包含通用平板电脑屏幕密度的自定义抽屉资产。”它链接到4。在tablet app quality页面上使用为tablet屏幕设计的资源。我正在试着理解我是如何不遵守第4节的,我会很感激你的真知灼见。 我的启动器图标大小正确,包括MDPI-xxxHDPI版本(,等)。

  • 我创建了一个Android应用程序,它不能在平板电脑上运行。 我已经在文件夹中添加了文件。当我在模拟器上运行时,它正在工作,但在平板电脑中它给出了错误, 日志输出: java.lang.RuntimeException:无法启动活动ComponentInfo{idev.android.soulspotter/idev.aandroid.sourlspotter.Login}:android.con

  • 我想制作一个单独的模块,以便在项目之间共享它。该模块将具有android组件。因此,在创建新模块时,选项是电话

  • 如果我添加一个新的手机仿真器图像,我可以使用Play Store选择一个图像。 但是当我尝试为平板电脑添加图像时,没有显示Play Market的选项。此外,在安装任何API后,我找不到Play Market。