| | |
| | | |
| | | import android.annotation.TargetApi; |
| | | import android.app.Activity; |
| | | import android.content.Context; |
| | | import android.media.Ringtone; |
| | | import android.media.RingtoneManager; |
| | | import android.net.Uri; |
| | | import android.nfc.NfcAdapter; |
| | | import android.nfc.Tag; |
| | | import android.nfc.tech.IsoDep; |
| | | import android.nfc.tech.MifareClassic; |
| | | import android.os.Build; |
| | | import android.os.Vibrator; |
| | | import android.util.Log; |
| | | |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public void onTagDiscovered(Tag tag) { |
| | | |
| | | // playSystemDefaultSound(); |
| | | palyVibrator(); |
| | | |
| | | Log.i(TAG, "New tag discovered"); |
| | | MifareClassic mifareClassic= MifareClassic.get(tag); |
| | | MifareClassic mifareClassic = MifareClassic.get(tag); |
| | | //普通M1卡 |
| | | if (mifareClassic!=null){ |
| | | if (mifareClassic != null) { |
| | | mActivity.runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | mAccountCallback.physicalCardDoing(tag); |
| | | } |
| | | }); |
| | | }else { |
| | | } else { |
| | | // Android 的基于主机的卡仿真 (HCE) 功能实现了 ISO-DEP (ISO 14443-4) 协议。为了使用 HCE 与设备通信,应使用 IsoDep 类处理发现的标记。 |
| | | IsoDep isoDep = IsoDep.get(tag); |
| | | if (isoDep != null) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | return data; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 震动 |
| | | */ |
| | | private void palyVibrator() { |
| | | // 获取 Vibrator 实例(震动功能) |
| | | Vibrator vibrator = (Vibrator) mActivity.getSystemService(Context.VIBRATOR_SERVICE); |
| | | // 震动 1000 毫秒(1 秒) |
| | | if (vibrator != null) { |
| | | vibrator.vibrate(10000); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 播放默认提示音 |
| | | */ |
| | | private void playSystemDefaultSound() { |
| | | // 获取默认提示音的URI |
| | | Uri defaultRingtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); |
| | | |
| | | // 创建Ringtone对象 |
| | | Ringtone ringtone = RingtoneManager.getRingtone(mActivity, defaultRingtoneUri); |
| | | |
| | | // 播放提示音 |
| | | if (ringtone != null) { |
| | | ringtone.play(); |
| | | } |
| | | } |
| | | |
| | | } |