2011-11-07 25 views
0

我正在嘗試捕獲audio/* mimetype action.View意圖並將它們轉發給另一個應用程序(由用戶選擇)。問題是,雖然我可以從文件管理器中選擇我的活動文件打開(通過應用程序選擇的對話框),但我無法將意圖轉發到另一活動(不是同一個活動)。 這是一個關於該活動的清單部分:Android中的轉發意圖

 <activity 
     android:label="@string/app_name" 
     android:name=".TestMimeActivity" > 
     <intent-filter > 
      <action android:name="android.intent.action.VIEW" /> 

      <data android:mimeType="audio/*" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

這是在該活動的調用onStart代碼:

@Override 
protected void onStart() { 
    super.onStart(); 
    setContentView(R.layout.main); 
    Intent intent = getIntent(); 
    startActivity(intent); 
} 

我僅獲得一個無限循環。我想打開活動車應用程序選擇對話框(最好沒有列出我的應用程序,但我也可以容忍整個列表)。可能嗎?我怎樣才能做到這一點?

感謝 託比亞Loschiavo

+0

我有點困惑,你的意圖過濾器應該用來做你正在尋找的東西。如果你想將不同的信息路由到不同的活動,intent過濾器自己做。 – Bobbake4

+0

從文件管理器我想打開一個文件,然後action.VIEW意圖用於音頻/ * mimetype,然後我想打開我的活動選擇從應用程序選擇的對話框,並在我的活動中我想重新打開所選擇的應用程序對話框再次發送相同的意圖(但這次選擇音樂應用程序)。開始活動時,我期待再次選擇應用程序對話框,但我有一個無限循環。 – Matroska

回答

2

從你的上述評論,我認爲你正在尋找createChooser。你應該修改你的代碼,看起來像這樣:

Intent intent = getIntent(); 
    startActivity(Intent.createChooser(intent, "Select application")); 
+0

謝謝!你知道是否有可能從列表中排除我的應用程序?我也看到預定義的標誌不存在了......是否有可能擁有它? – Matroska

+0

嗯,我不這麼認爲,但它可能是可能的。也許把它作爲一個新問題發佈。你是什​​麼意思預定義標誌?消息? – Bobbake4

+0

不,這是不可能的,我想我必須重新創建一個自定義選擇器對話框與應用程序列表(沒有我的和底部的複選框),並將選擇存儲在某處。我認爲在做出選擇之後,意圖不應該只是一種明確的意圖。我認爲這是解決方案。 – Matroska