如何修改一加3的配置文件,让其支持NFC模拟公交卡

如何修改一加3的配置文件,让其支持NFC模拟公交卡,第1张

经过一番搜索之后我发现网上有 Nexus 6 用户也碰到类似的问题:

* NEXUS 6 ANDROID MARSHMALLOW NFC SWP-SIM 支援

可以通过修改 Android 系统的 Broadcom NFC 配置文件来开启手机的 SIM SWP 支持,我的 Zenfone 2 手机 NFC 配置和上面的 Nexus 6 配置有一些差别,经过多次修改测试发现现在也可以使 NFC SIM SWP 功能正常工作了。

NFC 配置文件的修改都需要先开启手机的 root 权限哦,首先修改 /system/etc/libnfc-brcm.conf 配置文件增加以下内容:

+NFA_MAX_EE_SUPPORTED=3

+ACTIVE_SE=0xF3

+DEFAULT_ISODEP_ROUTE=0xF3

+NFA_HCI_STATIC_PIPE_ID_F3=0x70

+NFA_HCI_STATIC_PIPE_ID_F4=0x71

+UICC_LISTEN_TECH_MASK=0x0

注意

注意上面显示的是 patch 文件格式, - 号开头的为需要删除的内容, + 号开头的为需要增加的内容,实际修改时请删除开头的 - 号或 + 号。

上面的 NFA_MAX_EE_SUPPORTED 值为 3 表示开启多种 NFC SE 元件支持, ACTIVE_SE 和 DEFAULT_ISODEP_ROUTE 都设为 0xF3 表示默认使用 SIM SWP SE 元件,剩下的 3 个参数不一定需要设置。

接着修改 /system/etc/libnfc-brcm-20795a20.conf 配置文件:

###############################################################################

# Pre-Discovery Startup Configuration (256 bytes maximum)

-NFA_DM_PRE_DISCOVERY_CFG={0A:C2:08:02:00:C3:04:40:4B:4C:00}

+NFA_DM_PRE_DISCOVERY_CFG={0A:C2:08:01:00:C3:04:40:4B:4C:00}

上面的这两个配置文件修改完成之后重启手机,到公交或者地铁充值点去充值刷卡应该就有反应了哦,不过需要注意默认还是只有手机点亮的情况刷卡才有反应。

Android读写NFC的步骤:\x0d\x0a1.首先要在AndroidManifest.xml中声明如下配置信息:\x0d\x0a使用元素允许设备访问NFC硬件:\x0d\x0a \x0d\x0a\x0d\x0a2.使用元素设置最小SDK版本:\x0d\x0a \x0d\x0a\x0d\x0a3.NFC TAG的发布系统:\x0d\x0a当android设备扫描到一个NFC标签时,会自动寻找最适合的Activity来处理这个TAG,如果有多个Activity满足条件的话,会让用户来选择到底使用哪一个Activity来处理,可以理解为就是简单的事件响应与事件处理。\x0d\x0a\x0d\x0a4.如何让一个Activity监听 ”当扫描到NFC标签时” 的这一个事件呢?使用intent filter。\x0d\x0a可以理解为当检测到一个NFC标签时,系统自动创建一个相关的Intent对象,含有响应intent filter的Activity将处理这个Intent。\x0d\x0a其中,intent filter声明如下:\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a5.读取NFC标签中NDEF格式的文本信息:\x0d\x0a先判断手机支不支持NFC功能,若支持,是否已设置开启状态。\x0d\x0a@Override \x0d\x0aprotected void onCreate(Bundle savedInstanceState) { \x0d\x0asuper.onCreate(savedInstanceState) \x0d\x0asetContentView(R.layout.activity_write) \x0d\x0anfcTView=(TextView)findViewById(R.id.info_tv) \x0d\x0anfcAdapter = NfcAdapter.getDefaultAdapter(this) \x0d\x0aif (nfcAdapter == null) { \x0d\x0anfcTView.setText("设备不支持NFC!") \x0d\x0afinish() \x0d\x0areturn \x0d\x0a} \x0d\x0aif (nfcAdapter!=null&&!nfcAdapter.isEnabled()) { \x0d\x0anfcTView.setText("请在系统设置中先启用NFC功能!") \x0d\x0afinish() \x0d\x0areturn \x0d\x0a} \x0d\x0a} \x0d\x0a\x0d\x0a6.读取NFC卡的内容\x0d\x0aprivate boolean readFromTag(Intent intent){ \x0d\x0aParcelable[] rawArray = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES) \x0d\x0aNdefMessage mNdefMsg = (NdefMessage)rawArray[0] \x0d\x0aNdefRecord mNdefRecord = mNdefMsg.getRecords()[0] \x0d\x0atry { \x0d\x0aif(mNdefRecord != null){ \x0d\x0areadResult = new String(mNdefRecord.getPayload(),"UTF-8") \x0d\x0areturn true \x0d\x0a } \x0d\x0a} \x0d\x0acatch (UnsupportedEncodingException e) { \x0d\x0a e.printStackTrace() \x0d\x0a} \x0d\x0areturn false \x0d\x0a }

第一种方法:1.打开手机进入手机主页面,然后找到设置并进入。

2.打开设置后下滑找到用户和账户选项,或者直接点击设置中最上方的我的账户进入。

3.打开我的账户后点击我的账户下方的付款与账单选项,点击进入后可以找到nfc功能。

第二种方法:1.打开手机进入主页面,然后在主屏幕上方下滑d出手机的控制中心,在控制中心中可以找到nfc选项卡。

2.长按该选项卡也可以进入nfc设置界面。

第三种方法:1.打开手机进入手机主界面后,在屏幕的中央部位下滑屏幕,d出搜索框页面。

2.在搜索框的右面点击华为智能语音助手图标,呼出华为智能语音助手。

3.对着手机说出打开nfc系统会将nfc页面自动打开。

第四种方法:1.打开手机进入主页面,找到华为钱包APP进入。

2.这时点击华为钱包右上角我的界面,转到后打开便捷设置,点击其中的nfc选项卡即可进入nfc设置界面。华为写入的nfc源文件在哪里,1.

首先在手机中打开【设置】,再点击【更多连接】。

2.

进入【更多连接】后,点击【Huawei Beam】。

3.

在【Huawei Beam】中,点击【接收的文件】进入后即可查看到通过NFC接收到的文件了。所有手机的nFC机都会存在垫手机当中的,一块单独新品当中是不可单独读取的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8063484.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存