監聽來電方法不能獲取來電號碼

1、在android 9上,實現監聽來電的時候,onCallStateChanged(int,String)無法獲取手機號碼。

原因:android 9時,系統對電話的權限做了修改,該修改對所有編譯版本的應用都有影響,因此無論應用的編譯版本是多少,在android 9以上的系統,都不能正常的獲取來電號碼。

https://developer.android.com/about/versions/pie/android-9.0-changes-all?hl=zh-cn

解決方案:

監聽來電的時候需要添加一下權限:

<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

並且動態授予應用該權限即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章