Android Q和R的文件权限限制适用于NDK代码吗?
创始人
2024-08-15 03:00:08
0

从Android Q开始,引入了一些限制文件访问权限的变化,这也适用于NDK代码。具体来说,Android Q引入了Scoped Storage,它限制了应用对外部存储的直接访问,而是通过媒体存储库或应用特定目录来访问文件。

如果你的NDK代码需要访问外部存储的文件,可以使用以下方法:

  1. 使用媒体存储库访问文件: Android Q提供了媒体存储库来访问共享的媒体文件,例如照片、视频和音频文件。你可以使用MediaStore API来查询和读取这些文件。以下是一个示例代码:
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
String[] projection = {MediaStore.Images.Media._ID, MediaStore.Images.Media.DISPLAY_NAME};
String selection = MediaStore.Images.Media.DATA + " like ?";
String[] selectionArgs = new String[]{"%my_image.jpg%"};
String sortOrder = MediaStore.Images.Media.DATE_MODIFIED + " DESC";

Cursor cursor = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);
if (cursor != null && cursor.moveToFirst()) {
    String fileName = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DISPLAY_NAME));
    // 根据文件名读取文件内容或进行其他操作
    cursor.close();
}
  1. 使用应用特定目录访问文件: Android Q为每个应用提供了一个私有目录,应用可以在该目录下自由读写文件。你可以使用Context.getExternalFilesDir()方法获取应用的私有目录,并在该目录下读写文件。以下是一个示例代码:
File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "my_file.txt");
try {
    FileInputStream fis = new FileInputStream(file);
    // 读取文件内容或进行其他操作
    fis.close();
} catch (IOException e) {
    e.printStackTrace();
}

需要注意的是,以上方法仅适用于Android Q及以上的版本。对于较早的Android版本,可以继续使用传统的文件访问方式。

相关内容

热门资讯

科技新动态!边锋老友棋牌免费挂... 科技新动态!边锋老友棋牌免费挂(WEpoke),太坑了确实是真的有挂(有挂方法)-哔哩哔哩关于边锋老...
重磅来袭!广东雀神辅助器最新兑... 【福星临门,好运相随】;重磅来袭!广东雀神辅助器最新兑换码(辅助挂)太坑了的确是真的有挂(有挂攻略)...
透视玄学!鄱阳翻精系统发牌机制... 透视玄学!鄱阳翻精系统发牌机制,揭秘德州WPK辅助器,详细有挂(有挂教学)-哔哩哔哩;支持2-10人...
科普常识(Wepoke新版)外... 科普常识(Wepoke新版)外挂透明挂辅助APP(软件)发牌机制(2025已更新)(哔哩哔哩);原来...
分享给玩家!边锋麻将有挂(we... 分享给玩家!边锋麻将有挂(wepoKE),太坑了原来是真的有挂(有挂透明)-哔哩哔哩,支持语音通讯、...
查到实测辅助!广东雀神辅助手机... 查到实测辅助!广东雀神辅助手机版本(透视)太坑了果真真的有挂(有挂技巧)-哔哩哔哩;广东雀神辅助手机...
透视科技!新版边锋掼蛋辅助器,... 1、透视科技!新版边锋掼蛋辅助器,德州辅助app官方最新版本介绍大全,详细有挂(有挂介绍)-哔哩哔哩...
总算了解(眯眯扑克)外挂透明挂... 大家肯定在之前眯眯扑克或者眯眯扑克中玩过总算了解(眯眯扑克)外挂透明挂辅助app(系统)发牌规律(2...
一分钟了解!边锋老友二打一有挂... 一分钟了解!边锋老友二打一有挂,wepoker私人局透视方法,详细有挂(有挂攻略)-哔哩哔哩是一款可...
实测分享!边锋麻将有挂(weP... 实测分享!边锋麻将有挂(wePOke),太坑了的确是真的有挂(有挂方法)-哔哩哔哩是一款可以让一直输...