天天看點

如何将資源ID轉換成Uri+Android的MIME類型

如何将資源ID轉換成Uri:

盡管資源ID非常适合某些目的,但它們并不适合所有的目的。然而Android可以通過使用Uri來完成許多事情,幸運的是,很容易為一個已經放置在資源中的檔案構造Uri。可以通過将資源ID附加到一個字元串的末尾來構造Uri。該字元串必須以android.resource://開頭,随後是資源所在的應用程式的程式包名稱,再後面是檔案的資源ID。

以下是一個示例:

Uri fileUri=Uri.parse("android.resource://com.example.fileUri/"+R.raw.file);      

為了以Uri而不是資源ID使用MediaPlayer(如果該檔案不是應用程式的一部分,就必須這麼做),可以通過傳入上下文和Uri來調用一個create方法

MediaPlayer mediaPlayer=MediaPlayer.create(getApplicationContext(), fileUri);      

Android的MIME類型:

MIME類型代表多用途Internet郵件擴充(Multipurpose Internet Mail Extension)。它最初被指定為用于幫助電子郵件用戶端發送和接收附件。然後,它的使用範圍已經大大超出了電子郵件,而擴充到了許多其他的通信協定,包括HTTP或标準的Web服務。當解析一個Intent的時候,Android使用MIME類型來專門幫助确定哪些應用程式應該處理意圖。

每種檔案類型都具有一個特定的(有時是一個以上)MIME類型。使用至少兩部分(由斜杠分開)來指定這種類型。第一部分是更通用的類型,如"audio"。第二部分是更具體的類型,如"mpeg"。通用類型“audio”和更具體的類型“mpeg”将産生一個MIME類型的字元串“audio/mpeg”,這是通常用于MP3檔案的MIME類型。

Intent intent=new Intent(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(audioFileUri,"audio/mp3");
startActivity(intent);      

繼續閱讀