左晓为主开发手持机充值管理机
zuoxiao
2023-12-11 526138394ee77759e98764153b851acfe6c929af
添加震动和声音提示
3个文件已修改
55 ■■■■ 已修改文件
app/src/main/AndroidManifest.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/tools/LoyaltyCardReader.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local.properties 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/AndroidManifest.xml
@@ -32,7 +32,8 @@
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <!--用于申请调用A-GPS模块-->
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    <!--用于申请调用震动模块-->
    <uses-permission android:name="android.permission.VIBRATE" />
    <application
        android:name=".MyApplication"
        android:allowBackup="true"
@@ -93,7 +94,7 @@
            android:launchMode="singleTop">
            <intent-filter>
                <action android:name="android.nfc.action.ACTION_NDEF_DISCOVERED" />
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/plain" />
            </intent-filter>
        </activity>
app/src/main/java/com/dayu/recharge/tools/LoyaltyCardReader.java
@@ -17,11 +17,16 @@
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;
@@ -73,17 +78,21 @@
     */
    @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) {
@@ -118,8 +127,6 @@
                }
            }
        }
    }
@@ -172,4 +179,33 @@
        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();
        }
    }
}
local.properties
@@ -4,5 +4,5 @@
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
#Sat Nov 11 20:12:34 CST 2023
sdk.dir=D\:\\AndroidStudio\\sdk
#Fri Dec 08 14:26:41 CST 2023
sdk.dir=D\:\\sdk