Android 获取拨号器包名

Rus*_*nko 2 android android-dialer

我需要获取发布有关未接来电的通知的应用程序的包名称。据我了解,它制作了设备的拨号器应用程序。我可以从 API 19 获取设备上拨号器应用程序的包名称吗?

Pan*_*mar 5

您可以使用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;
}
Run Code Online (Sandbox Code Playgroud)