android实现通过NFC读取卡号

本文实例为大家分享了android通过NFC读取卡号的具体代码,供大家参考,具体内容如下

1.获取权限

<uses-permission android:name="android.permission.NFC" />
<uses-feature
     android:name="android.hardware.nfc"
    android:required="true" />

2.设置NFC活动页

<intent-filter>
                <action android:name="android.nfc.action.TAG_DISCOVERED" />
                <data android:mimeType="text/plain" />
            </intent-filter>

3.Activity代码

//NFC对象
private NfcAdapter mNfcAdapter;
private PendingIntent pi;

1.主方法中:

//获取默认的NFC控制器
        //初始化NfcAdapter
        mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
        if (mNfcAdapter == null) {
            Toast.makeText(AddPointActivity.this, "设备不支持NFC!", Toast.LENGTH_LONG).show();
            finish();
            return;
        }
        if (!mNfcAdapter.isEnabled()) {
            Toast.makeText(AddPointActivity.this, "请在系统设置中先启用NFC功能!", Toast.LENGTH_LONG).show();
            finish();
            return;
        }
        //初始化PendingIntent
        // 初始化PendingIntent,当有NFC设备连接上的时候,就交给当前Activity处理
        pi = PendingIntent.getActivity(this, 0, new Intent(this, getClass())
                .addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);

2.方法

//获取数据
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        // 当前app正在前端界面运行,这个时候有intent发送过来,那么系统就会调用onNewIntent回调方法,将intent传送过来
        // 我们只需要在这里检验这个intent是否是NFC相关的intent,如果是,就调用处理方法
        if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
            processIntent(intent);
        }
    }

    //启动
    @Override
    protected void onResume() {
        super.onResume();
        mNfcAdapter.enableForegroundDispatch(this, pi, null, null);
    }

    //解析
    private void processIntent(Intent intent) {
        //取出封装在intent中的TAG
        Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
        String CardId =ByteArrayToHexString(tagFromIntent.getId());
        Toast.makeText(AddPointActivity.this, CardId, Toast.LENGTH_LONG).show();
    }

    //转为16进制字符串
    private String ByteArrayToHexString(byte[] inarray) {
        int i, j, in;
        String[] hex = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A",
                "B", "C", "D", "E", "F" };
        String out = "";

        for (j = 0; j < inarray.length; ++j) {
            in = (int) inarray[j] & 0xff;
            i = (in >> 4) & 0x0f;
            out += hex[i];
            i = in & 0x0f;
            out += hex[i];
        }
        return out;
    }

运行结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android实现读取NFC卡的编号

    本文实例为大家分享了Android读取NFC卡的编号具体代码,供大家参考,具体内容如下 NFC相关androidManifest文件设置: 一.权限:<uses-permission android:name="android.permission.NFC"/> 二.sdk级别限制:<uses-sdk android:minSdkVersion="10"/> 三.特殊功能限制<uses-feature android:name=&quo

  • android实现NFC读写功能

    一.NFC是什么? 近距离无线通讯技术,这个技术由非接触式射频识别(RFID)演变而来,由飞利浦半导体(现恩智浦半导体公司).诺基亚和索尼共同研制开发,其基础是RFID及互连技术.近场通信(Near Field Communication,NFC)是一种短距高频的无线电技术,在13.56MHz频率运行于20厘米距离内.其传输速度有106 Kbit/秒.212 Kbit/秒或者424 Kbit/秒三种.目前近场通信已通过成为ISO/IEC IS 18092国际标准.ECMA-340标准与ETSI

  • Android识别NFC芯片制造商的方法

    如何识别? 通过NFC模块的Serial Number即UID,用户访问权限为R只读,每颗NFC芯片独有序列号(UID),在出厂时写入,用户不能改写. Android如何实现? 通过Intent获取UID /** * 读取nfcUID 返回String类型大写的UID * * 这个测试顺便加上的,下面用不到,做个笔记~~ * */ public static String readUID(Intent intent) throws UnsupportedEncodingException { T

  • android实现通过NFC读取卡号

    本文实例为大家分享了android通过NFC读取卡号的具体代码,供大家参考,具体内容如下 1.获取权限 <uses-permission android:name="android.permission.NFC" /> <uses-feature android:name="android.hardware.nfc" android:required="true" /> 2.设置NFC活动页 <intent-filt

  • Android开发实现NFC刷卡读取的两种方式

    场景:NFC是目前Android手机一个主流的配置硬件项,本文主要讲解一下Android开发中,NFC刷卡的两种实现方式以及相关方法源码解析. ①:Manifest注册方式:这种方式主要是在Manifest文件对应的activity下,配置过滤器,以响应不同类型NFC  Action.使用这种方式,在刷卡时,如果手机中有多个应用都存在该NFC实现方案,系统会弹出能响应NFC事件的应用列表供用户选择,用户需要点击目标应用来响应本次NFC刷卡事件.目前我公司这边项目中使用了该逻辑,比较简便,这里先贴

  • Android实现NFC读取校园卡

    本文实例为大家分享了Android实现NFC读取校园卡的具体代码,供大家参考,具体内容如下 主程序: package com.nfclab.stuCard; import java.io.IOException; import android.app.Activity; import android.app.PendingIntent; import android.content.Intent; import android.content.IntentFilter; import andro

  • Android 不解压直接读取zip包的方法

    之前项目中遇到个需求,总监让我们把从服务器下载下来的资源不解压直接读取里面的资源,这样的话就省去了一个个校验资源是否正确的步骤,听着貌似有点道理...废话不多说直接上代码. 目前我所试验过的可以读取的资源有文本.图片.xml文件. 文本: zip包目录结构:res/txt/data.json 文件sd卡路径:android.os.Environment.getExternalStorageDirectory() + "/res.zip" public static String rea

  • uni-app实现NFC读取功能

    本文实例为大家分享了uni-app实现NFC读取功能的具体代码,供大家参考,具体内容如下 好久没有写博客了,今天难得有空重新记录自己学习的点点滴滴. 1.NFC方法.js // 包路径 const package_NdefRecord = 'android.nfc.NdefRecord'; const package_NdefMessage = 'android.nfc.NdefMessage'; const package_TECH_DISCOVERED = 'android.nfc.acti

  • Android中Json数据读取与创建的方法

    首先介绍下JSON的定义,JSON是JavaScript Object Notation的缩写. 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. JSON的结构: (1) Name/Value Pairs(无序的):类似所熟知的Keyed list. Hash table.Disctiona

  • Android编程之判断SD卡状态的方法

    本文实例讲述了Android编程之判断SD卡状态的方法.分享给大家供大家参考,具体如下: 首先我们要在AndroidManifest.xml中增加SD卡访问权限: <!-- 在SDCard 的挂载权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 往SDCard写入数据权限 --> <uses-permission

  • Android获取监听SD卡状态

    项目简介: 该项目监听SD卡状态 详细介绍: 部署该应用后,当SD卡状态发送改变时,系统会发出吐司通知用户 该应用涉及到的知识有: 1.Android的四大组件之一:广播接收者的使用 2.SD卡状态的广播 注意: 1.只有在 2.x 模拟器上才能对SD卡进行操作,所以该应用应当部署在 2.x 的模拟器上 2.一个广播接收者是可以接受多个广播的,直接添加多个action就可以了 3.SD卡不同的状态有不同的广播,主要有三种: <action android:name="android.int

  • Android 文件夹显示红色叹号的解决方法(必看)

    有感叹号,说明有的文件损坏或丢失了 解决方法: 右击工程,Build Path..->Configure Build Path...->Java Build Path 可以看到引用的jar包,看看是不是带x了 不用的话就移除,要用的引用回正确路径就可以了 以上这篇Android 文件夹显示红色叹号的解决方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Android ListView与getView调用卡顿问题解决办法

    Android ListView与getView调用卡顿问题解决办法 解决办法1,设置ListView高度为固定值或者match_parent/ifll_parent @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { Log.d("onMeasure", "onMeasure"); isOnMeasure = true; super.onMeasure(

随机推荐