0

我有一个独特的情况,我必须查询电话以确定哪个应用程序将处理来电。我意识到在 95% 的情况下 com.android.phone 正在做这项工作,但是,我不能只在 95% 的情况下是正确的,我需要在 100% 的情况下知道它将是什么应用程序(用户毕竟可以安装一个自定义电话应用程序来处理电话)。

熟悉 Intent,我想我可以简单地要求 PackageManager 识别所有可以处理这些操作的应用程序:Intent.ACTION_ANSWER 和或 Intent.ACTION_CALL(与电话相关的唯一两个 Intent 操作),毕竟这种方法几乎适用于我尝试过的所有其他电话功能。

不幸的是,无论何时尝试查询 PackageManager,比如使用 .resolveActivity() 或 .queryIntentActivities(),结果始终为“null”,即使这些意图存在默认应用程序也是如此。为了进一步加剧我的挫败感,关于为什么不能使用这些意图操作的文档绝对为零。文档读起来好像我正在做所有正确的事情以实现我的目标。

因此,问题有两个方面:是否有任何合理的方法来确定电话应用程序(希望是默认应用程序)以及为什么不能使用为此确切目的创建的意图操作?

TL;DR有两个与电话呼叫相关的意图操作,但您不能使用它们来查询 PackageManager 以找到促进这些意图操作的底层应用程序。为什么不?

4

0 回答 0