2013-07-28 180 views
1

應用程序有一些活動,有些活動只在更高版本上運行。但由於活動支持的intent-filter,所以我無法控制其推出。Activity的最低SDK版本支持

 <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 

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

      <data android:mimeType="image/*" /> 
     </intent-filter> 

像這樣的活動intent-filter可以通過降低版本啓動比它不能。例如:該活動必須在版本11及更高版本中運行,但android仍會在較低版本的圖像選擇器對話框中顯示它。有沒有辦法避免這種情況?

回答

2

如果你正在尋找僅用於XML配置我可以爲你提供建議,如何在Android API演示中完成。

他們宣佈Activity在AndroidManifest爲禁用或啓用取決於這樣android:enabled="@bool/atLeastHoneycomb",其中@bool/atLeastHoneycomb僅僅是被設置爲true,values-v11,並在默認values文件夾虛假標誌API版本(你可以檢查的Android API演示,正如我之前所說的,瞭解更多細節)。

2

你將不得不在intent-filter有一個'控制器'的活動。

當此活動啓動時,它將檢查當前的SDK級別,然後將Intent轉發到較低或較高的SDK活動,然後finish()本身。

在您的情況下,您可以稍後爲您提供進一步的靈活性,例如您希望將平板電腦導入第三項活動。


另一種說法可能是你的活動應該測試SDK級別,然後只是交換Fragments了依賴於此。即您的活動是SDK不可知的,但它是正確片段顯示的控制器。

參考文獻:

http://developer.android.com/training/basics/supporting-devices/platforms.html http://developer.android.com/training/basics/supporting-devices/platforms.html#version-codes

http://developer.android.com/training/backward-compatible-ui/abstracting.html

http://developer.android.com/training/backward-compatible-ui/using-component.html

正如你從文獻看,你應該去閱讀訓練文檔

+0

是的,但我正在尋找一些內置支持:) – xmen

+2

這是內置的支持。你在找什麼魔杖? – Blundell

+0

不是魔杖:)但它會很好,如果有一些XML標籤。 – xmen

相關問題