为了增强用户隐私,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. Mason 简单笔记
  2. 从源码来理解slf4j的绑定,以及logback对配置文件的加载
  3. spring cloud 定时任务
  4. 关于项目过程能力基线的几个讨论
  5. Xamarin Studio支持TypeScript开发
  6. 40个Java多线程问题详解复习
  7. 前端学习(1797):前端调试之html/css介绍
  8. 【linux】常用命令总结
  9. 22个HTML5的初级技巧
  10. 介绍两种简单实用的信道编码——CRC校验和汉明码
  11. js如何获取计算机当前时间,js获取当前系统时间实例代码
  12. 灵活易用的液体创可贴,让伤口愈合更快,海氏海诺液体创可贴上手
  13. php加波浪线不解析,给文字加波浪线效果
  14. Android笔记:将布局转换成图片
  15. 微信公众号服务器端脑图,微信公众号中隐藏的思维导图工具,帮你随时随地高效思考...
  16. 清单革命 <<读后感>> _(:з」∠)_
  17. python win32com excel_如何用Python win32com处理Excel数据?
  18. magento怎么修改货币符号,在之前加上国家缩写
  19. 小羊驼和你一起学习cocos2d-x之二(屏幕匹配、多分辨率解决方案、分辨率适配)
  20. CTO语录:真正技术高手是如何炼成的?

热门文章

  1. 已重置应用默认设置html,教大家Win10已重置应用默认设置的解决方法
  2. Android开机自启动C程序调试
  3. 2021年空气净化器行业发展研究报告
  4. 转载:HP大中华区总裁孙振耀退休感言(同勉)
  5. Win10-14361系统Windows墨迹工作区的用途
  6. 走进云计算 --- 1
  7. 重新改写了一下通达信数据格式提取工具
  8. kruskal算法c语言,最小生成树之Kruskal算法
  9. sync.waitgroup可以声明多个变量吗?_VBA编程必知:什么是变量?
  10. IntelliJ Idea各种技巧设置笔记和错误解决