为什么在Android中确定默认电话应用程序是不可能的?

时间:2013-07-18 20:03:24

标签: android android-intent

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

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

不幸的是,无论何时尝试查询PackageManager,比如使用.resolveActivity()或.queryIntentActivities(),结果总是为'null',即使这些意图存在默认应用程序。为了进一步加剧我的沮丧,对于无法利用这些意图行为的原因,绝对没有文档记录。文档读起来好像我正在做一切正确的事情来实现我的目标。

所以,问题是双重的:是否有任何合理的方法来确定手机应用程序(希望是默认的应用程序)以及为什么不能使用为此目的而创建的意图动作?< /强>

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

0 个答案:

没有答案