0
A
回答
1
默認情況下,Android不允許。安全原因等。
但是,有一個漏洞 - 每次系統識別出一個新的組件被添加了,可以處理給定的意圖的默認重置。
所以,你需要做這樣的事情:
public void resetDefault() {
PackageManager manager = getPackageManager();
ComponentName component = new ComponentName("com.example.app", "com.mypackage.Component");
manager.setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
manager.setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}
com.mypackage.Component是一個虛擬Activity
,你在你的清單和未默認啓用的。它需要有一個與意圖,你想成爲默認的應用程序,像這樣的IntentFilter
:
<activity
android:name="Component"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.SOME_ACTION" />
<category android:name="android.intent.category.SOME_CATEGORY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
的方法將使虛擬組件,系統將通知新的可能的接收器中,加入(同例如,當你安裝一個新的啓動器),並將重置默認值。該代碼將禁用虛擬器,因此它不會顯示在選擇器中。
您可能需要檢查您的應用程序是否爲默認應用程序,以及是否有默認的應用程序。有關如何執行此操作的詳細信息,請參閱this answer。
相關問題
- 1. 選擇應用程序以編程方式打開文件
- 2. 如何以編程方式更改默認應用程序?
- 3. 如何將應用程序設置爲以編程方式打開特定類型文件的默認程序?
- 4. 以編程方式啓動用戶選擇的應用程序
- 5. 以編程方式打開設置應用程序(iPhone)
- 6. 如何以編程方式打開狀態欄應用程序?
- 7. 以編程方式打開默認瀏覽器設置頁面
- 8. 以編程方式取消默認應用程序
- 9. 如何以編程方式選擇默認縮略圖圖像?
- 10. 如何以編程方式設置默認打印機
- 11. 以默認應用程序打開的程序
- 12. Cocoa API設置文件的默認應用程序以打開
- 13. 如何更改打開應用程序的默認方式
- 14. 如何以編程方式設置jQuery默認選項卡?
- 15. 如何在android中以編程方式將應用程序設置爲默認應用程序
- 16. 以編程方式將應用程序作爲應用程序打開
- 17. Android - 以編程方式打開消息應用程序
- 18. 以編程方式從wpf應用程序打開winform
- 19. 以編程方式打開iphone日曆應用程序
- 20. 以編程方式打開照片應用程序
- 21. 如何以編程方式打開離子選擇
- 22. 如何以編程方式確定Linux中的默認應用程序
- 23. 如何以編程方式更改iPhone應用程序的默認圖標?
- 24. 如何以編程方式將應用程序帶到前臺
- 25. 以編程方式設置程序集默認圖標
- 26. 如果另一個應用程序打開,如何以編程方式啓動我的應用程序?
- 27. Monkeyrunner以編程方式打開設置
- 28. 如何以編程方式打開GPS
- 29. 如何以編程方式重命名Android應用程序?
- 30. 如何以編程方式設置tabLayout的應用程序:tabBackground?
應用程序無法刪除其他應用程序作爲意圖的默認處理程序,它只能將其本身作爲默認處理程序移除(請參閱['clearPackagePreferredActivities'](https://developer.android.com/reference/android/content/ PM/PackageManager.html#clearPackagePreferredActivities(java.lang.String中))。 – Michael