2012-09-01 75 views
1

我有一個想要處理SGF文件的應用程序。它在清單中的過濾器:ActivityNotFoundException - 意圖過濾器不再工作

 <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <data android:scheme="http"/> 
      <data android:host="*"/> 
      <data android:pathPattern=".*\\.sgf"/> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <data android:scheme="http"/> 
      <data android:mimeType="application/x-go-sgf"/> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <data android:scheme="file"/> 
      <data android:mimeType="*/*" /> 
      <data android:host="*" /> 
      <data android:pathPattern=".*\\.sgf"/> 
     </intent-filter> 

的想法是如何在瀏覽器或文件打開SGF文件。這直到最近纔開始工作。我不確定它何時停止工作,但這不是因爲代碼更改。我有另一個應用程序試圖啓動該活動,它正在發生異常:

未找到處理意圖的活動{act = android.intent.action.VIEW dat = file:/// mnt/sdcard/gogrinder /掌握%第二十條%20Basics /體積%202%20-%20One%20Thousand%20於是%20One%20Life和死亡%20Problems/6%20-%20Five-移動%20problems%20-%20Black%20to%20kill/prob144.sgf}

不應該這個意圖匹配上面的過濾器之一? 從瀏覽器或文件資源管理器中打開SGF文件確實會導致我的活動啓動,但是如上所述以編程方式進行操作不再有效。

回答

0

我也有一個應用程序,它打開SGF文件,它工作正常。相比於你的代碼,我增加了額外的mimeTypehost屬性:

 <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:host="*" /> 
      <data android:scheme="file" /> 
      <data android:pathPattern=".*\\.sgf" /> 
      <data android:mimeType="*/*" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:host="*" /> 
      <data android:scheme="http" /> 
      <data android:pathPattern=".*\\.sgf" /> 
      <data android:mimeType="*/*" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:host="*" /> 
      <data android:scheme="http" /> 
      <data android:mimeType="application/x-go-sgf" /> 
     </intent-filter> 

如果仍然不能正常工作,它可能是與文件路徑的問題。當路徑包含多個點時,pathPattern不能很好地工作。檢查這個問題:

pathPattern to match file extension does not work if a period exists elsewhere in the file name?

+0

有路徑額外的點,但是這似乎並不成爲問題。我嘗試了一個沒有額外點的文件,但它仍然不起作用。 – TimK