2013-12-14 68 views
2

我在我的應用程序中有以下過濾器。我希望能夠使用三種不同的mimeTypes啓動相同的應用程序。如何獲得意圖過濾器MimeType

後來我讀了NDEF消息,但是如何檢查使用什麼MIME類型來啓動應用程序,以便我可以相應地處理NDEF消息數據?

 <intent-filter> 
       <action android:name="android.nfc.action.NDEF_DISCOVERED"/> 
       <category android:name="android.intent.category.DEFAULT"/> 
       <data android:mimeType="text/product" /> 
     </intent-filter> 
     <intent-filter> 
       <action android:name="android.nfc.action.NDEF_DISCOVERED"/> 
       <category android:name="android.intent.category.DEFAULT"/> 
       <data android:mimeType="text/pesticide" /> 
     </intent-filter> 
     <intent-filter> 
       <action android:name="android.nfc.action.NDEF_DISCOVERED"/> 
       <category android:name="android.intent.category.DEFAULT"/> 
       <data android:mimeType="text/seed" /> 
     </intent-filter> 

回答

3

這裏是我如何處理我的應用程序中的csv文件和文本文件的簡化版本。我希望這幫助:

@Override 
public void onNewIntent(final Intent intent) 
{ 
    super.onNewIntent(intent); 
    String type = intent.getType(); 
    String action = intent.getAction(); 
    if ("text/csv".equals(type) || "text/comma-separated-values".equals(type)) 
    { 
     // Handle CSV file being sent 
     handleSendCSV(intent); 
    } 
    else if("text/plain".equals(type) && Intent.ACTION_SEND.equals(action)) 
    { 
     // Handle plaintext sent 
     handlePlainText(intent); 
    } 
    else 
    { 
     //Alert of some error 
     doAlertDialog("Error.", "Invalid file type."); 
    } 
} 

編輯 -

補充:

String action = intent.getAction(); 

因此,代碼將是完整的。

+0

謝謝,它的工作原理。 – hermann

+0

很高興能幫到你! – lentz