【问题标题】:How to get Incoming and Outgoing Call's Number in Android 9 without READ_CALL_LOG Permission?如何在没有 READ_CALL_LOG 权限的情况下在 Android 9 中获取来电和去电号码?
【发布时间】:2021-01-10 19:33:44
【问题描述】:

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

在 android 9 之前它运行良好,但在 android 9 之后,我们需要在运行时向用户请求两个权限 READ_PHONE_STATEREAD_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) 得到null 这个问题是android 9

我尝试使用此权限发布此应用,但由于此权限,应用被Google Play Console 拒绝。

填写Permission Declaration Form即可发布此应用。但我不知道如何填写该表格,以便应用被谷歌接受。

所以我的问题是如何在没有READ_CALL_LOG 权限的情况下获取号码。 TelephonyManager 的任何替代品?我试图获得一些替代品,但我没有得到。我已经搜索了很多。

或者如果有人知道如何通过填写Permission Declaration Form 来发布具有READ_CALL_LOG 权限的应用程序,请告诉我。

TIA!

【问题讨论】:

    标签: android android-studio google-play google-play-console telephonymanager


    【解决方案1】:

    Google 只允许选定的少数用例获得 CALL_LOG 权限,而通话记录器用例不在该列表中。

    更糟糕的是,文档中的“无效用途”下明确提到了“通话记录器”:https://support.google.com/googleplay/android-developer/answer/9047303?hl=en

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

    【讨论】:

    • 嗨@mar​​mor,如果我在Amazon Appstore上发布应用程序,那么我将能够发布具有READ_CALL_LOG权限的应用程序。
    • 你需要查看亚马逊的政策,但我不知道其他应用商店(亚马逊、三星等)也有类似的限制
    猜你喜欢
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多