[英]Clear Default Android Application
我們是否可以知道用戶已為特定操作設置了默認應用程序? 即android.intent.action.CALL_PRIVILEGED
假設我的應用程序還提供了Call_privilaged上的被調用操作。 但是用戶已將內置撥號程序設置為Call_privilaged操作的默認啟動器。
我的問題是,我可以從語法上知道用戶已將Dialer設置為Call_privalged操作的默認啟動器。
謝謝。
我們是否可以知道用戶已為特定操作設置了默認應用程序? 即android.intent.action.CALL_PRIVILEGED
我認為沒有簡單的方法可以做到這一點。 在PackageManager
上調用getPreferredActivities()
,並篩選List<IntentFilter>
您將返回以嘗試找到與您的Intent
匹配的方法。
您可以使用Intent或PackageManager的resolveActivity()
。
Intent intent = ...
ComponentName componentName = intent.resolveActivity(getPackageManager());
if (componentName.getPackageName().equals("android")) {
// No default selected
...
} else if (componentName.getPackageName().equals(getPackageName())) {
// We are default
...
} else {
// Someone else is default
...
}
如果您自己不處理意圖,那么在沒有應用程序能夠處理意圖的情況下,您可能還需要進行空檢查。
不確定這是否適用於所有設備和所有版本的Android。 在Nexus設備上的Android 4.1-4.3上進行了測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.