问题描述
我正在开发Call Recorder应用程序,在该应用程序中,我需要传入和传出电话的号码以在视图中显示记录详细信息。
在android 9之前运行良好,但在android 9之后,我们需要在运行时向用户请求两个权限READ_PHONE_STATE
和READ_CALL_LOG
。
,以便brodcastReceiver
将触发2次。第一次,我们将从intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER)
中获取空值,而第二次,我们将获取数字。因此,我们通过检查intent.hasExtra(TelephonyManager.EXTRA_INCOMING_NUMBER)
所以场景是当我们不使用READ_CALL_LOG
时,我们将从intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER)
中获取空值,这是android 9
的问题
我试图使用此权限发布此应用,但由于该权限,该应用被Google Play Console
拒绝。
可以通过填充Permission Declaration Form
来发布此应用。但我不知道如何填写该表格,因此应用程序会被Google接受。
所以我的问题是未经READ_CALL_LOG
许可如何获取号码。 TelephonyManager
的替代方法?我试图找到一些替代方案,但我没有。我搜索了很多。
或者如果有人知道如何通过填充READ_CALL_LOG
来获得Permission Declaration Form
许可的应用程序发布,请告诉我。
TIA!
解决方法
Google只允许选择的几个用例获得CALL_LOG权限,而呼叫记录器用例不在该列表中。
更糟糕的是,在文档“ https://support.google.com/googleplay/android-developer/answer/9047303?hl=en”中的“无效使用”下明确提到了“呼叫记录器”
因此,除非您在Google Play之外发布应用,否则恐怕您无法获得该应用的电话号码。