如何获得传入和传出呼叫';Android 9中的s号码没有读取呼叫日志权限?

如何获得传入和传出呼叫';Android 9中的s号码没有读取呼叫日志权限?,android,android-studio,google-play,google-play-console,telephonymanager,Android,Android Studio,Google Play,Google Play Console,Telephonymanager,我正在开发通话记录应用程序,在该应用程序中,我需要呼入和呼出电话的号码,以显示视图中的记录详细信息 在android 9之前,它工作正常,但在android 9之后,我们需要在运行时向用户请求两个权限读取手机状态和读取通话日志 这样,brodcastereceiver将被触发2次。第一次,我们将从intent.getStringExtra(TelephonyManager.EXTRA\u INCOMING\u NUMBER)中获取null,第二次,我们将获取NUMBER。因此,我们通过检查int

我正在开发通话记录应用程序,在该应用程序中,我需要呼入和呼出电话的号码,以显示视图中的记录详细信息

在android 9之前,它工作正常,但在android 9之后,我们需要在运行时向用户请求两个权限
读取手机状态
读取通话日志

这样,
brodcastereceiver
将被触发2次。第一次,我们将从
intent.getStringExtra(TelephonyManager.EXTRA\u INCOMING\u NUMBER)
中获取null,第二次,我们将获取NUMBER。因此,我们通过检查
intent.hasExtra(TelephonyManager.EXTRA\u INCOMING\u NUMBER)

所以,当我们不使用
READ\u CALL\u LOG
时,我们将从
intent.getStringExtra(TelephonyManager.EXTRA\u INCOMING\u NUMBER)
中获取空值。这个问题与
android 9有关

我试图使用此权限发布此应用程序,但由于此权限,
Google Play Console
拒绝了此应用程序

此应用可通过填写
权限声明表
发布。但我不知道如何填写表格,这样应用程序才能被谷歌接受

所以我的问题是如何在没有
读取呼叫日志
权限的情况下获取号码。
TelephonyManager
的任何替代方案?我试着找一些替代品,但没有找到。我找了很多

或者,如果有人知道如何通过填写
权限声明表
读取呼叫日志
权限发布应用程序,请告诉我


蒂亚

Google只允许选定的少数用例获得CALL_LOG权限,而CALL recorder用例不在该列表中

更糟糕的是,文档中的“无效使用”中明确提到了“呼叫记录器”:


因此,除非您在Google Play之外发布应用程序,否则恐怕您无法获取应用程序的电话号码。

hi@marmor,如果我在Amazon Appstore上发布应用程序,那么我将能够使用
READ\u CALL\u LOG
权限发布应用程序。您需要检查亚马逊的政策,但我不知道其他应用程序商店有类似的限制(亚马逊、三星等)