打开方式显示自己的APP

先说一下格式,待会设置的mimeType格式:

统一格式:

  • 视频:video/*
  • 音频:audio/*
  • 图片:image/*
  • 全部:*/*

详细格式:

  • rar:application/x-rar-compressed
  • jpg:image/jpeg
  • zip:application/zip
  • pdf:application/pdf
  • doc:application/msword
  • docx:application/msword
  • wps:application/msword
  • xls:application/vnd.ms-excel
  • et:application/vnd.ms-excel
  • xlsx:application/vnd.ms-excel
  • ppt:application/vnd.ms-powerpoint
  • html:text/html
  • htm:text/html
  • txt:text/html
  • mp3:audio/mpeg
  • mp4:video/mp4
  • 3gp:video/3gpp
  • wav:audio/x-wav
  • avi:video/x-msvideo
  • flv:flv-application/octet-stream

……

1、举例:视频文件打开方式显示自己的APP:

<activity android:name="com.xaehu.livehd.MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter tools:ignore="AppLinkUrlError">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="video/*" />
    </intent-filter>
</activity>

2、接收:

Intent intent = getIntent();
String action = intent.getAction();
if (Intent.ACTION_VIEW.equals(action)) {
    Uri uri = intent.getData();
    if(uri != null){
        //路径:
        //String url = uri.getPath();
        //真实路径:
        //String url = getRealFilePath(this,uri);
    }
}

附:获取真实路径方法:

public static String getRealFilePath( final Context context, final Uri uri ) {
    if ( null == uri ) {
        return null;
    }
    final String scheme = uri.getScheme();
    String data = null;
    if ( scheme == null ){
        data = uri.getPath();
    }
    else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) {
        data = uri.getPath();
    } else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) {
        Cursor cursor = context.getContentResolver().query( uri, new String[] { MediaStore.Images.ImageColumns.DATA }, null, null, null );
        if ( null != cursor ) {
            if ( cursor.moveToFirst() ) {
                int index = cursor.getColumnIndex( MediaStore.Images.ImageColumns.DATA );
                if ( index > -1 ) {
                    data = cursor.getString( index );
                }
            }
            cursor.close();
        }
    }
    return data;
}

完。

转载注明出处:https://blog.csdn.net/qq_35584878/article/details/96341687 

发布了60 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_35584878/article/details/96341687