我需要在啓動程序中隱藏或顯示我的應用程序的圖標,具體取決於某些運行時信息。我想仍然可以通過明確的意圖運行該活動,因此禁用該活動不是一個好的選擇(我甚至不知道它是否可以工作,但我還沒有嘗試過,但我想會)。那麼,我可以禁用一個意圖過濾器嗎?Android:我可以以編程方式啓用/禁用活動的意圖過濾器嗎?
回答
你不能直接這樣做,但你可以創建一個在您AndroidManifest.xml
一個activity alias與有問題的意圖過濾器,然後啓用或禁用使用PackageManager#setComponentEnabledSetting()
別名,讓你的其他意圖過濾器在活動的主副本所以他們不會受到影響。
從[這篇文章](http:///stackoverflow.com/questions/23919329/android-how-to-create-componentname-in-code-using-activity-alias)你的活動別名的組件名將是'new ComponentName($ packageName,$ packageName +「 。「+ $ aliasName)'其中$ packageName是你的應用程序的包(通過getActvitiy()。getPackageName()')獲取它。 –
如果您使用的是現代版本的android gradle插件,您還可以從'BuildConfig.APPLICATION_ID'(或者稍微老版本的插件上的'BuildConfig.PACKAGE_NAME')獲取包名。這避免了爲了獲得始終是相同的字符串而進行的運行時調用。 – mlc
我可以刪除多個意圖嗎? 如果我的活動對不同類型的NFC標籤有多個意圖,並且某些時候我不希望我的應用檢測到NFC標籤,那麼是否有可能有問題地刪除多個意圖? – Query
- 1. 我可以檢測意向過濾器中的活動啓動嗎? Android
- 2. 我可以通過我的應用程序以編程方式啓用GPS嗎?
- 3. Android:以編程方式禁用和啓用活動在android中不起作用
- 4. 我可以啓用/禁用以編程方式打破例外嗎?
- 5. iPhone:我可以以編程方式禁用自動關閉顯示器嗎?
- 6. 我可以通過編程啓用/禁用ContentProvider嗎?
- 7. 是否可以通過編程方式啓用/禁用硬件?
- 8. 我可以以編程方式啓動Windows Management Instrumentation服務嗎?
- 9. 以編程方式啓用/禁用Log4jLogger?
- 10. 如何通過可編程方式創建/禁用意圖過濾器?
- 11. Android如何以編程方式啓用/禁用自動同步
- 12. Android NFC:我們可以使用MIME類型的意圖過濾器嗎? (android 2.3.3)
- 13. 如何以編程方式啓動svg過濾器動畫
- 14. 以編程方式啓用我禁用的應用程序
- 15. 我可以用這種方式使用urlize過濾器嗎?
- 16. 意圖過濾器不會以編程方式取消註冊
- 17. Android意圖過濾器的非啓動器活動
- 18. 創建意圖過濾器以啓動我的應用程序的問題
- 19. Android意圖過濾器無法從瀏覽器啓動活動
- 20. Android-如何以編程方式檢查意圖過濾器的類型?
- 21. 我可以以編程方式爲視圖啓動長按事件嗎?
- 22. 我可以顯示禁用的過濾器文本嗎?
- 23. Android以編程方式禁用onScroll()
- 24. 如何在android中以編程方式添加或刪除意圖過濾器?
- 25. 如何在rooted android上以編程方式禁用/啓用gps?
- 26. Android:以編程方式啓用/禁用相機
- 27. 如何在Android 4.4中以編程方式啓用/禁用GPS?
- 28. 以編程方式Hibernate過濾器
- 29. 我可以在AngularJS的過濾器中使用過濾器嗎?
- 30. Android意圖過濾器重新啓動活動?
回答是在這裏,http://stackoverflow.com/questions/40505357/disable-the-intent-filter-from-android-manifest-programatically/40505924#40505924 – Takermania