为了增强用户隐私,Android 9 引入了若干行为变更,如限制后台应用访问设备传感器、限制通过 Wi-Fi 扫描检索到的信息,以及与通话、手机状态和 Wi-Fi 扫描相关的新权限规则和权限组。

限制访问电话号码

在未首先获得 READ_CALL_LOG 权限的情况下,除了应用的用例需要的其他权限之外,运行于 Android 9 上的应用无法读取电话号码或手机状态。

与来电和去电关联的电话号码可在手机状态广播(比如来电和去电的手机状态广播)中看到,并可通过 PhoneStateListener 类访问。 但是,如果没有 READ_CALL_LOG 权限,则 PHONE_STATE_CHANGED 广播和 PhoneStateListener 提供的电话号码字段为空。

要从手机状态中读取电话号码,请根据您的用例更新应用以请求必要的权限:

要通过 PHONE_STATE Intent 操作读取电话号码,同时需要 READ_CALL_LOG 权限和 READ_PHONE_STATE 权限。
要从 onCallStateChanged() 中读取电话号码,只需要 READ_CALL_LOG 权限。 不需要 READ_PHONE_STATE 权限。

 <!--读取电话的状态信息的权限--><uses-permission android:name="android.permission.READ_PHONE_STATE" /><!--读取通话记录的权限--><uses-permission android:name="android.permission.READ_CALL_LOG" />
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;public class MyPhoneStateListener extends PhoneStateListener {private static final String TAG = "MyPhoneStateListener";@Overridepublic void onCallStateChanged(int state, String incomingNumber) {switch (state) {case TelephonyManager.CALL_STATE_IDLE:Log.d(TAG ,"电话挂断...");break;case TelephonyManager.CALL_STATE_OFFHOOK:Log.d(TAG ,"正在通话...");break;case TelephonyManager.CALL_STATE_RINGING:Log.d(TAG ,"电话响铃...");break;}super.onCallStateChanged(state, incomingNumber);}
}

Android 9 来电监听incomingNumber为空相关推荐

  1. 【Android】来电监听

    Android 来电监听 1 依据来电号码查询本地联系人 1.1 权限 1.2 实现 2 来电监听方法(有两种) 2.1 系统广播监听 2.1.1 权限 2.1.2 注册电话状态系统广播接收器 2.2 ...

  2. android 双卡来电监听,Android 实现获取双卡中的联系人

    Android 获取联系人及其双卡联系人需要申请如下权限 接下来就是实现获取双卡联系人代码: if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LO ...

  3. Android 来电监听

    最近刚接到一个需求,为BOSS做一个来电显示功能,查找号码库显示姓名角色. 一.查找来电监听方法 PhoneStateListener监听器类,用于监视设备上特定电话状态的变化,包括服务状态.信号强度 ...

  4. android 2.1 监听电话状态并自动接听来电

    一.开发环境       Elispse5.5,JDK1.6,Aadroid 2.1 二.开发中使用到的重点技术点:       距离感应(SENSOR_SERVICE ),音讯管理(AUDIO_SE ...

  5. [已验证]双卡手机下两种来电监听方法的一些问题。

    为什么80%的码农都做不了架构师?>>>    首先,网上学习到的来电监听有两种方法,但在双卡手机上都不太正常工作. 经过用户的反馈,基本上都能监听到大部分主流双卡手机的主副卡来电了 ...

  6. Android 来去电监听,电话挂断

    android:enabled="true" android:process=":PhoneListenService"> public class Ph ...

  7. Android的Button监听

    1.android简单按钮监听----单个监听 start = (Button)findViewById(R.id.btnStart); start.setOnClickListener(new On ...

  8. android 软键盘监听、隐藏、显示、点击空白处隐藏和Android KEYCODE 键值大全

    android 软键盘监听.隐藏.显示.点击空白处隐藏. textView.setOnKeyListener(new View.OnKeyListener() {@Overridepublic boo ...

  9. Android开发之监听手机来电

    TelephonyManager是一个管理手机通话状态.电话网络信息的服务类,该类提供了大量的getXxx(),方法获取电话网络的相关信息.关于TelephonyManager的详解可以参照:Andr ...

最新文章

  1. dialog能提交数据吗_你的数据库,能撑起多少并发,有数吗?
  2. python代码覆盖率测试_利用coverage工具进行Python代码覆盖率测试
  3. 【labelme】改造labelme
  4. 服务器系统wlanapi,没有找到wlanapi.dll怎么办?
  5. JS字符串与二进制的相互转化
  6. 状态管理 - 全局状态管理工具
  7. java用户界面项目_结对项目(带图型用户界面)Java实现【柴政-陈起廷】
  8. 实现等待wx.login完成后在执行其他请求
  9. Some urls for db2 download
  10. 联发科完成双模芯片实验室测试 首批5G终端明年一季度问世
  11. 使用esp8266制作wifi干扰器
  12. Excel 中 查看 当前列 最后一个不为空的值 (使用公式实现)
  13. java order()_Java Comparator naturalOrder()用法及代码示例
  14. 蓝桥杯 ALGO-45 算法训练 调和数列问题
  15. xcode证书签名快速完美解决
  16. Python参考文献
  17. 关于vue的视频上传
  18. LIN总线增强型校验_相比于LIN通讯,大家可能对CAN更感兴趣
  19. 计算机专业法语怎么读,法语实用资料计算机专业相关词汇(17页)-原创力文档...
  20. 邻菲罗啉二酰胺功能化/吡啶基改性纤维状介孔二氧化硅微球的应用

热门文章

  1. 九联UNT402H-Hi3798MV310-当贝纯净桌面卡刷固件包
  2. Badly placed ()‘s 问题
  3. vps服务器的简单迁移方法
  4. web前端后端的连接:Servlet简单演示
  5. backtrace 实现原理
  6. linux之fping命令
  7. ️Rust 移动端开发体验
  8. 2022年python面试题大全(50题附答案)
  9. uid、userId和appId之间不得不说的事 (二)
  10. 不要逼脸李笑来,退圈以后再站台