1

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

4

2 回答 2

4

Intent.ACTION_DIAL您可以使用action 和过滤所有拨号器应用程序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;
}
于 2018-01-12T12:12:13.677 回答
-1

要获取应用程序的包(和活动名称),您可以使用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

于 2020-05-28T23:15:34.887 回答