android 调用系统指定的程序打开对应的文件

本文介绍如何在Android系统中调用特定的应用程序来打开相应的文件,实现应用间的交互功能。
摘要由CSDN通过智能技术生成
android 调用系统指定的程序打开对应的文件
	// fileName = android开发者大赛.doc
	
	String filePath = getActivity().getExternalFilesDir(null) + File.separator + fileName;
	// 先判断该文件是否存在
	File file = new File(filePath);
	if (file.exists()) {
   
		// 存在, 打开
		openFile(filePath);
	}else{
   
		// 不存在, 下载文件到本地
	}


	/**
	 * 打开文件的方法
	 */
    private void openFile(String filePath) {
   
        //获取文件file的MIME类型
        String type = getFileMimeType(new File(filePath));
		// 解决android7.0以上文件权限问题
        Uri uri = FileProvider.getUriForFile(getContext(), "包名.provider", new File(filePath));
        Intent intent = new Intent();
        intent.setDataAndType(uri, type);
        intent.setAction(Intent.ACTION_VIEW);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addCategory("android.intent.category.DEFAULT");
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
        startActivity(intent);
    }


    /**
     * 根据文件后缀名获取文件的MIME
     */
    private String getFileMimeType(File file) {
   
        String type = "*/*";
        String fileName = file.getName();
        // 获取后缀名前的分隔符"."在fileName中的位置
        int dotIndex = fileName.lastIndexOf(".");
        if (dotIndex < 0) {
   
            return type;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值