簡體   English   中英

清除默認的Android應用程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM