Android Intent ACTION_VIEW无法打开外部SD卡中的文件。
创始人
2024-08-14 05:33:16
0

要使用Android Intent ACTION_VIEW打开外部SD卡中的文件,您需要获取文件的URI,并将其传递给Intent的setDataAndType()方法。以下是一个代码示例,演示如何解决此问题:

// 首先,您需要获取外部SD卡上的文件URI
File file = new File(Environment.getExternalStorageDirectory(), "path_to_your_file");
Uri uri = FileProvider.getUriForFile(context, context.getPackageName() + ".provider", file);

// 创建Intent并设置Action为ACTION_VIEW
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "application/pdf"); // 这里假设您要打开的是PDF文件

// 授予URI的临时访问权限
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

// 检查是否有任何应用程序可以处理此Intent
PackageManager packageManager = context.getPackageManager();
List activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;

// 如果有任何应用程序可以处理此Intent,则启动它
if (isIntentSafe) {
    context.startActivity(intent);
}

上述代码中的"path_to_your_file"应替换为您要打开的文件的实际路径。此外,您需要在AndroidManifest.xml文件中添加一个内容提供者(FileProvider)来授予URI的临时访问权限。以下是一个示例的AndroidManifest.xml文件配置:


    
        
        
            
        
    

在res目录下创建一个名为file_paths.xml的xml文件,并添加以下内容:


    

这样,您就可以使用Android Intent ACTION_VIEW打开外部SD卡中的文件了。请注意,您可能需要根据实际情况进行调整和修改。

相关内容

热门资讯

识别九分钟!德州竞技联盟辅助线... 识别九分钟!德州竞技联盟辅助线上德州后台可以操控(本来真的有挂)-知乎1、超多福利:超高返利,海量正...
输赢七分钟!wpk辅助神器aa... 输赢七分钟!wpk辅助神器aapoker有猫腻(都是真的有挂)-今日头条;暗藏猫腻,小编详细说明aa...
打法3分钟!aapoker软件... 打法3分钟!aapoker软件有猫腻cloudpoker辅助器(果真真的有挂)-小红书aapoker...
大厅房七分钟!德州辅助软件欢乐... 大厅房七分钟!德州辅助软件欢乐棋牌有外挂(一贯真的有挂)-百度知乎1、玩家可以在欢乐棋牌有外挂软件透...
辅助3分钟!微扑克ai代打Aa... 辅助3分钟!微扑克ai代打Aapoker app(一般真的有挂)-小红书1、微扑克ai代打ai辅助优...
计算器2分钟!wpk可以检测伙... 计算器2分钟!wpk可以检测伙牌wpk ai检测(一贯真的有挂)-哔哩哔哩1、玩家可以在wpk可以检...
靠谱8分钟!微扑克辅助软件wp... 靠谱8分钟!微扑克辅助软件wpk辅助(原来真的有挂)-小红书微扑克辅助软件辅助器中分为三种模型:微扑...
软件6分钟!fishpoker... 软件6分钟!fishpoker有挂来玩德州扑克约局神器(其实真的有挂)-小红书1、来玩德州扑克约局神...
软件3分钟!微扑克规律德扑之星... 软件3分钟!微扑克规律德扑之星真的太假了(总是真的有挂)-百度知乎1、在德扑之星真的太假了ai机器人...
app一分钟!微扑克有机器人德... app一分钟!微扑克有机器人德州wpk德州有挂(果真真的有挂)-小红书1、用户打开应用后不用登录就可...