diff --git a/app/build.gradle b/app/build.gradle index adeff5e..9601473 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,7 +8,7 @@ android { defaultConfig { applicationId "chaoran.business.pda" - minSdkVersion 22 + minSdkVersion 26 targetSdkVersion 29 versionCode 1 versionName "1.0" @@ -54,12 +54,18 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - +/* repositories { + flatDir { + dirs 'libs' + } + }*/ } dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.2.1' + implementation 'com.google.code.gson:gson:2.6.2' //加载jar包 implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.preference:preference:1.1.1' + //implementation fileTree(include: ['*.aar'], dir: 'libs') } \ No newline at end of file diff --git a/app/libs/Msc.jar b/app/libs/Msc.jar new file mode 100644 index 0000000..551e28b Binary files /dev/null and b/app/libs/Msc.jar differ diff --git a/app/libs/arm64-v8a/libmsc.so b/app/libs/arm64-v8a/libmsc.so new file mode 100644 index 0000000..fc1127c Binary files /dev/null and b/app/libs/arm64-v8a/libmsc.so differ diff --git a/app/libs/armeabi-v7a/libmsc.so b/app/libs/armeabi-v7a/libmsc.so index 1113761..ef885a8 100644 Binary files a/app/libs/armeabi-v7a/libmsc.so and b/app/libs/armeabi-v7a/libmsc.so differ diff --git a/app/libs/flytek.jar b/app/libs/flytek.jar deleted file mode 100644 index e4ed582..0000000 Binary files a/app/libs/flytek.jar and /dev/null differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2d662c1..c881ca1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,7 +2,6 @@ - diff --git a/app/src/main/java/chaoran/business/activity/MainActivity.java b/app/src/main/java/chaoran/business/activity/MainActivity.java index 60ffed9..477dfb1 100644 --- a/app/src/main/java/chaoran/business/activity/MainActivity.java +++ b/app/src/main/java/chaoran/business/activity/MainActivity.java @@ -5,8 +5,10 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; +import android.media.MediaPlayer; import android.os.Build; import android.os.Bundle; +import android.os.Vibrator; import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -18,6 +20,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; + +import java.util.Map; + import chaoran.business.BrandEnum; import chaoran.business.R; import chaoran.business.adapter.*; @@ -25,6 +30,7 @@ import chaoran.business.engine.impl.NetworkSettingEngine; import chaoran.business.engine.SettingEngine; import chaoran.business.engine.impl.TekVoiceEngine; import chaoran.business.engine.VoiceEngine; +import chaoran.business.utils.LocalAddressUtil; /** * 流程:联网认证设备型号,验证通过,查找设备品牌进行调用驱动操作 @@ -37,7 +43,7 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ private WebView webView; private Adapter adapter; - //private VoiceEngine voiceEngine; + private VoiceEngine voiceEngine; private SettingEngine settingEngine; private ProgressBar progressBar; private ActionBar actionBar; @@ -56,7 +62,7 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ BrandEnum brand = BrandEnum.code(Build.MANUFACTURER); Toast.makeText(this, Build.MANUFACTURER, Toast.LENGTH_LONG).show(); Log.i("brand===",brand.toString()); - switch (brand) { + /* switch (brand) { case UROBO: adapter = new UroBoAdapter(this, this); break; @@ -72,13 +78,12 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ } if (null != adapter) { adapter.start(); - } + }*/ } - @SuppressLint("JavascriptInterface") private void initView() { actionBar = getSupportActionBar(); - // voiceEngine = new TekVoiceEngine(this); + voiceEngine = new TekVoiceEngine(this); settingEngine = new NetworkSettingEngine(this); webView = findViewById(R.id.webView); progressBar = findViewById(R.id.loading); @@ -88,11 +93,12 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ //设置接口进行windows暴露 settings.setDomStorageEnabled(true); //语音引擎 - // webView.addJavascriptInterface(voiceEngine, "TekVoiceEngine"); + webView.addJavascriptInterface(voiceEngine, "TekVoiceEngine"); //网络设置展示 webView.addJavascriptInterface(settingEngine, "NetworkSettingEngine"); //重新加载页面 webView.addJavascriptInterface(this, "View"); + webView.addJavascriptInterface(new LocalAddressUtil(), "Localpda"); webView.loadUrl(url()); } @@ -173,11 +179,24 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ public void result(String result) { runOnUiThread(() -> webView.loadUrl("javascript:render(\'" + result + "\')")); } - @Override protected void onDestroy() { adapter.stop(); super.onDestroy(); + if (diPlayer != null) { + diPlayer.stop(); + diPlayer.release(); + diPlayer = null; + } + if (duPlayer != null) { + duPlayer.stop(); + duPlayer.release(); + duPlayer = null; + } + if (vibrator != null) { + vibrator.cancel(); + } + completionListener = null; } @Override @@ -218,4 +237,48 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ webView.loadUrl(url()); }); } + private MediaPlayer diPlayer = null; + private MediaPlayer duPlayer = null; + private String ttsNr; + public Vibrator vibrator; + + @JavascriptInterface + public void play(String msg, String type, int isZd) { + ttsNr = msg; + if ("1".equals(type)) { + if (diPlayer == null) { + diPlayer = MediaPlayer.create(this, R.raw.didi); + diPlayer.setOnCompletionListener(completionListener); + } + diPlayer.start(); + } else if ("2".equals(type)) { + if (duPlayer == null) { + duPlayer = MediaPlayer.create(this, R.raw.dudu); + duPlayer.setOnCompletionListener(completionListener); + } + duPlayer.start(); + } else { + //isZd = 1; + if (voiceEngine != null) { + voiceEngine.startSpeaking(msg); + } + } + if (isZd == 1) { + if (vibrator == null) { + vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); + } + vibrator.vibrate(2000); + } + } + private MediaPlayer.OnCompletionListener completionListener = new MediaPlayer.OnCompletionListener() { + // @Override + public void onCompletion(MediaPlayer mp) { + if (ttsNr != null) { + if (voiceEngine != null) { + voiceEngine.startSpeaking(ttsNr); + } + ttsNr = null; + } + } + }; } \ No newline at end of file diff --git a/app/src/main/java/chaoran/business/adapter/IDataAdapter.java b/app/src/main/java/chaoran/business/adapter/IDataAdapter.java index bc7fc73..7d4f07e 100644 --- a/app/src/main/java/chaoran/business/adapter/IDataAdapter.java +++ b/app/src/main/java/chaoran/business/adapter/IDataAdapter.java @@ -1,11 +1,5 @@ package chaoran.business.adapter; -/* - ********************************************** - * DATE PERSON REASON - * 2021-02-02 FXY Created - ********************************************** - */ import android.content.BroadcastReceiver; import android.content.Context;