Android源码-WirelessSettings之NFC小结

本文详细介绍了Android系统中WirelessSettings的NFC功能,包括NFC开关控制的NfcEnabler类,以及如何通过NfcAdapter获取NFC服务。关键涉及NfcAdapter的getServiceInterface()方法,该方法通过ServiceManager获取远程服务NfcService,并探讨了为何采用此方式以确保跨进程安全。同时阐述了如何通过NfcManager.getDefaultAdapter(Context context)获取NfcAdapter对象。
摘要由CSDN通过智能技术生成

Android Settings中包含有无线通信功能,其中有NFC,蓝牙,wifi等部分。最近看了和NFC有关的部分逻辑代码。做一个大概的记录。
首先是WirelessSettings结构图:
这里写图片描述

NFC的开关控制

NfcEnabler.java
NfcEnabler类就是对NFC进行开关状态管理的类
关键属性:
SwitchPreference mSwitch; //代表NFC这个SwitchPreference选项
PreferenceScreen mAndroidBeam; //代表AndroidBeam这个PreferenceScreen
NfcAdapter mNfcAdapter; //NfcAdapter适配器
mBeamDisallowedBySystem = RestrictedLockUtils.hasBaseUserRestriction(context,
UserManager.DISALLOW_OUTGOING_BEAM,UserHandle.myUserId()); //根据UserManage判断当前用是人否可以用AndroidBeam

主要方法:

handleNfcStateChanged(int newState)          //newState是mNfcAdapter.getAdapterState():NfcAdapter.STATE_OFF,NfcAdapter.STATE_ON,    STATE_TURNING_ON,STATE_TURNING_OF。根据newState来对 mSwitch,mAndroidBeam设置

// 一个对nfcAdapter的state改变的广播监听来调用handleNfcStateChanged方法
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值