我們可以知道用戶已經爲特定操作設置了默認應用程序嗎?一世。即android.intent.action.CALL_PRIVILEGED清除默認Android應用程序
假設我的應用程序還提供Call_privilaged操作調用。但用戶已將內置撥號程序設置爲Call_privilaged操作的默認啓動程序。
我的問題是,我可以從程序上知道該用戶已將撥號程序設置爲Call_privalged操作的默認啓動程序。
謝謝。
我們可以知道用戶已經爲特定操作設置了默認應用程序嗎?一世。即android.intent.action.CALL_PRIVILEGED清除默認Android應用程序
假設我的應用程序還提供Call_privilaged操作調用。但用戶已將內置撥號程序設置爲Call_privilaged操作的默認啓動程序。
我的問題是,我可以從程序上知道該用戶已將撥號程序設置爲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。