第十一篇- 实现APK打开文件功能

MainActivity.java

package com.example.aimee.aimeetest3;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.support.v4.content.FileProvider;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;

import java.io.File;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {
    private static final String[][] MIME_MapTable={
            //{后缀名,MIME类型}
            {"txt","text/plain"},
            {"xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    private void openFile(File file){
        Intent intent=new Intent();
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        intent.setAction(Intent.ACTION_VIEW);
        String type=getMIMEType(file);
        intent.setDataAndType(Uri.fromFile(file),type);
        startActivity(intent);
    }
    private String getMIMEType(File file){
        String type="*/*";
        String fName=file.getName();
        int dotIndex=fName.lastIndexOf(".");
        if(dotIndex<0){
            return type;
        }
        String end=file.getName().substring(dotIndex+1,fName.length()).toLowerCase(Locale.getDefault());
        if(end.equals(""))
            return type;
        for(int i=0;i<MIME_MapTable.length;i++){
            if(end.equals(MIME_MapTable[i][0]))
                type=MIME_MapTable[i][1];
        }
        return type;
    }
}

  

AndroidMainfest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.aimee.aimeetest3">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="file" />
                <data android:scheme="content"/>
                <data android:mimeType="text/plain" />
            </intent-filter>
        </activity>
    </application>

</manifest>

  

 

posted @ 2018-10-21 22:17  o云淡风轻o  阅读(322)  评论(0编辑  收藏  举报