打開方式顯示自己的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 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章