Android 9 来电监听incomingNumber为空
为了增强用户隐私,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为空相关推荐
- 【Android】来电监听
Android 来电监听 1 依据来电号码查询本地联系人 1.1 权限 1.2 实现 2 来电监听方法(有两种) 2.1 系统广播监听 2.1.1 权限 2.1.2 注册电话状态系统广播接收器 2.2 ...
- android 双卡来电监听,Android 实现获取双卡中的联系人
Android 获取联系人及其双卡联系人需要申请如下权限 接下来就是实现获取双卡联系人代码: if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LO ...
- Android 来电监听
最近刚接到一个需求,为BOSS做一个来电显示功能,查找号码库显示姓名角色. 一.查找来电监听方法 PhoneStateListener监听器类,用于监视设备上特定电话状态的变化,包括服务状态.信号强度 ...
- android 2.1 监听电话状态并自动接听来电
一.开发环境 Elispse5.5,JDK1.6,Aadroid 2.1 二.开发中使用到的重点技术点: 距离感应(SENSOR_SERVICE ),音讯管理(AUDIO_SE ...
- [已验证]双卡手机下两种来电监听方法的一些问题。
为什么80%的码农都做不了架构师?>>> 首先,网上学习到的来电监听有两种方法,但在双卡手机上都不太正常工作. 经过用户的反馈,基本上都能监听到大部分主流双卡手机的主副卡来电了 ...
- Android 来去电监听,电话挂断
android:enabled="true" android:process=":PhoneListenService"> public class Ph ...
- Android的Button监听
1.android简单按钮监听----单个监听 start = (Button)findViewById(R.id.btnStart); start.setOnClickListener(new On ...
- android 软键盘监听、隐藏、显示、点击空白处隐藏和Android KEYCODE 键值大全
android 软键盘监听.隐藏.显示.点击空白处隐藏. textView.setOnKeyListener(new View.OnKeyListener() {@Overridepublic boo ...
- Android开发之监听手机来电
TelephonyManager是一个管理手机通话状态.电话网络信息的服务类,该类提供了大量的getXxx(),方法获取电话网络的相关信息.关于TelephonyManager的详解可以参照:Andr ...
最新文章
- dialog能提交数据吗_你的数据库,能撑起多少并发,有数吗?
- python代码覆盖率测试_利用coverage工具进行Python代码覆盖率测试
- 【labelme】改造labelme
- 服务器系统wlanapi,没有找到wlanapi.dll怎么办?
- JS字符串与二进制的相互转化
- 状态管理 - 全局状态管理工具
- java用户界面项目_结对项目(带图型用户界面)Java实现【柴政-陈起廷】
- 实现等待wx.login完成后在执行其他请求
- Some urls for db2 download
- 联发科完成双模芯片实验室测试 首批5G终端明年一季度问世
- 使用esp8266制作wifi干扰器
- Excel 中 查看 当前列 最后一个不为空的值 (使用公式实现)
- java order()_Java Comparator naturalOrder()用法及代码示例
- 蓝桥杯 ALGO-45 算法训练 调和数列问题
- xcode证书签名快速完美解决
- Python参考文献
- 关于vue的视频上传
- LIN总线增强型校验_相比于LIN通讯,大家可能对CAN更感兴趣
- 计算机专业法语怎么读,法语实用资料计算机专业相关词汇(17页)-原创力文档...
- 邻菲罗啉二酰胺功能化/吡啶基改性纤维状介孔二氧化硅微球的应用