[英]Android get dialer package name
我需要獲取發布未接來電通知的應用程序的包名稱。 據我了解,它使設備的撥號器應用程序成為可能。 我可以在設備上獲取撥號器應用程序的包名嗎?我需要從 API 19 獲取它嗎?
您可以使用Intent.ACTION_DIAL
操作和PackageManager.queryIntentActivities(...)
過濾所有撥號應用程序。 它將返回可以撥打電話的應用程序列表。 在Android 上閱讀更多信息:如何顯示我的設備上安裝的撥號器應用程序列表,而不是直接調用默認撥號器
您可以使用下面的代碼,因為它是
public List<String> getPackagesOfDialerApps(Context context){
List<String> packageNames = new ArrayList<>();
// Declare action which target application listen to initiate phone call
final Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL);
// Query for all those applications
List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentActivities(intent, 0);
// Read package name of all those applications
for(ResolveInfo resolveInfo : resolveInfos){
ActivityInfo activityInfo = resolveInfo.activityInfo;
packageNames.add(activityInfo.applicationInfo.packageName);
}
return packageNames;
}
要獲取應用程序的包(和活動名稱),您可以使用adb
命令。
啟動應用程序,然后:
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
從輸出:
mFocusedApp=AppWindowToken{
e224f9d token=Token{
d8b2e74 ActivityRecord{
1d97647 u0 com.android.dialer/.app.DialtactsActivity t1078
}
}
}
你可以說應用程序的包是com.android.dialer
並且活動名稱是.app.DialtactsActivity
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.