From bb9d0b31941ee3999f10e74c586a62b560b25745 Mon Sep 17 00:00:00 2001
From: "zhenhua.zhu" <1020090284@qq.com>
Date: Wed, 31 Oct 2018 14:55:48 +0800
Subject: [PATCH 1/4] =?UTF-8?q?RECORD=5FAUDIO=E5=8A=A8=E6=80=81=E6=9D=83?=
=?UTF-8?q?=E9=99=90=E7=9A=84=E6=B7=BB=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/codeStyles/Project.xml | 29 +++++
.../plugin/uexxunfei/EUExXunfei.java | 114 ++++++++++++------
2 files changed, 103 insertions(+), 40 deletions(-)
create mode 100644 .idea/codeStyles/Project.xml
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..30aa626
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/org/zywx/wbpalmstar/plugin/uexxunfei/EUExXunfei.java b/src/org/zywx/wbpalmstar/plugin/uexxunfei/EUExXunfei.java
index 93f76b9..4bb28ad 100644
--- a/src/org/zywx/wbpalmstar/plugin/uexxunfei/EUExXunfei.java
+++ b/src/org/zywx/wbpalmstar/plugin/uexxunfei/EUExXunfei.java
@@ -1,9 +1,14 @@
package org.zywx.wbpalmstar.plugin.uexxunfei;
+import android.Manifest;
import android.content.Context;
+import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Message;
+import android.support.annotation.NonNull;
+import android.support.v4.app.ActivityCompat;
import android.text.TextUtils;
+import android.widget.Toast;
import com.iflytek.cloud.InitListener;
import com.iflytek.cloud.RecognizerListener;
@@ -16,6 +21,7 @@
import com.iflytek.cloud.SynthesizerListener;
import org.zywx.wbpalmstar.engine.DataHelper;
+import org.zywx.wbpalmstar.engine.EBrowserActivity;
import org.zywx.wbpalmstar.engine.EBrowserView;
import org.zywx.wbpalmstar.engine.universalex.EUExBase;
import org.zywx.wbpalmstar.engine.universalex.EUExCallback;
@@ -39,6 +45,7 @@ public class EUExXunfei extends EUExBase {
private static final int MSG_INIT_SPEAKER = 2;
private String mCallbackWinName="root";
+ private String[] initSpeakerParams;
public EUExXunfei(Context context, EBrowserView eBrowserView) {
super(context, eBrowserView);
@@ -75,7 +82,6 @@ public void init(String[] params) {
} else {
callBackPluginJs(JsConst.CALLBACK_INIT, DataHelper.gson.toJson(outputVO));
}
-
}
private void initMsg(String[] params) {
@@ -91,13 +97,8 @@ private void initMsg(String[] params) {
}
public void initSpeaker(String[] params) {
- Message msg = new Message();
- msg.obj = this;
- msg.what = MSG_INIT_SPEAKER;
- Bundle bd = new Bundle();
- bd.putStringArray(BUNDLE_DATA, params);
- msg.setData(bd);
- mHandler.sendMessage(msg);
+ initSpeakerParams = params;
+ requsetPerssions(Manifest.permission.RECORD_AUDIO, "请先申请权限" + Manifest.permission.RECORD_AUDIO, 1);
}
private void initSpeakerMsg(String[] params) {
@@ -127,7 +128,6 @@ public void onInit(int i) {
//保存在SD卡需要在AndroidManifest.xml添加写SD卡权限
//如果不需要保存合成音频,注释该行代码
//mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH, "./sdcard/iflytek.pcm");
-
}
@Override
@@ -154,47 +154,51 @@ public void onHandleMessage(Message message) {
* @param params
*/
public void startSpeaking(String[] params) {
- if (mTts == null) {
- return;
- }
- String json = params[0];
- StartSpeakingVO speakingVO = DataHelper.gson.fromJson(json, StartSpeakingVO.class);
- mTts.startSpeaking(speakingVO.text, new SynthesizerListener() {
- @Override
- public void onSpeakBegin() {
- callBackPluginJs(JsConst.ON_SPEAK_BEGIN, "");
+ if (mContext.checkCallingOrSelfPermission(Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED){
+ if (mTts == null) {
+ return;
}
+ String json = params[0];
+ StartSpeakingVO speakingVO = DataHelper.gson.fromJson(json, StartSpeakingVO.class);
+ mTts.startSpeaking(speakingVO.text, new SynthesizerListener() {
+ @Override
+ public void onSpeakBegin() {
+ callBackPluginJs(JsConst.ON_SPEAK_BEGIN, "");
+ }
- @Override
- public void onBufferProgress(int i, int i1, int i2, String s) {
+ @Override
+ public void onBufferProgress(int i, int i1, int i2, String s) {
- }
+ }
- @Override
- public void onSpeakPaused() {
- callBackPluginJs(JsConst.ON_SPEAK_PAUSED, "");
- }
+ @Override
+ public void onSpeakPaused() {
+ callBackPluginJs(JsConst.ON_SPEAK_PAUSED, "");
+ }
- @Override
- public void onSpeakResumed() {
- callBackPluginJs(JsConst.ON_SPEAK_RESUMED, "");
- }
+ @Override
+ public void onSpeakResumed() {
+ callBackPluginJs(JsConst.ON_SPEAK_RESUMED, "");
+ }
- @Override
- public void onSpeakProgress(int i, int i1, int i2) {
+ @Override
+ public void onSpeakProgress(int i, int i1, int i2) {
- }
+ }
- @Override
- public void onCompleted(SpeechError speechError) {
- callBackPluginJs(JsConst.ON_SPEAK_COMPLETE, "");
- }
+ @Override
+ public void onCompleted(SpeechError speechError) {
+ callBackPluginJs(JsConst.ON_SPEAK_COMPLETE, "");
+ }
- @Override
- public void onEvent(int i, int i1, int i2, Bundle bundle) {
+ @Override
+ public void onEvent(int i, int i1, int i2, Bundle bundle) {
- }
- });
+ }
+ });
+ } else {
+ Toast.makeText(mContext, "请先申请权限" + Manifest.permission.RECORD_AUDIO, Toast.LENGTH_LONG).show();
+ }
}
public void initRecognizer(String[] params) {
@@ -305,4 +309,34 @@ private void callBackPluginJs(String methodName, String jsonData) {
evaluateScript(mCallbackWinName,0,js);
}
+ @Override
+ public void onRequestPermissionResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionResult(requestCode, permissions, grantResults);
+// Log.i("--grantResults.length-","grantResults----" + grantResults.length);
+ if (requestCode == 1){
+ if (grantResults[0] != PackageManager.PERMISSION_DENIED){
+ Message msg = new Message();
+ msg.obj = this;
+ msg.what = MSG_INIT_SPEAKER;
+ Bundle bd = new Bundle();
+ bd.putStringArray(BUNDLE_DATA, initSpeakerParams);
+ msg.setData(bd);
+ mHandler.sendMessage(msg);
+// Toast.makeText(mContext, "--权限通过--", Toast.LENGTH_LONG).show();
+// Log.i("----走了2----", "----走了2----");
+ } else {
+ // 对于 ActivityCompat.shouldShowRequestPermissionRationale
+ // 1:用户拒绝了该权限,没有勾选"不再提醒",此方法将返回true。
+ // 2:用户拒绝了该权限,有勾选"不再提醒",此方法将返回 false。
+ // 3:如果用户同意了权限,此方法返回false
+ // 拒绝了权限且勾选了"不再提醒"
+ if (!ActivityCompat.shouldShowRequestPermissionRationale((EBrowserActivity)mContext, permissions[0])) {
+ Toast.makeText(mContext, "请先设置权限" + permissions[0], Toast.LENGTH_LONG).show();
+ } else {
+ requsetPerssions(Manifest.permission.RECORD_AUDIO, "请先申请权限" + permissions[0], 1);
+ }
+ }
+ }
+ }
+
}
From af8776e435fc7d79bafe66038c62383e72295350 Mon Sep 17 00:00:00 2001
From: "zhenhua.zhu" <1020090284@qq.com>
Date: Wed, 31 Oct 2018 15:27:54 +0800
Subject: [PATCH 2/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=8F=90=E4=BA=A4?=
=?UTF-8?q?=E5=A4=9A=E4=BD=99=E7=9A=84=E6=96=87=E4=BB=B6project.xml?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/codeStyles/Project.xml | 29 -----------------------------
1 file changed, 29 deletions(-)
delete mode 100644 .idea/codeStyles/Project.xml
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index 30aa626..0000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
From 4110118ef536af4aa761a49be7a7a7a374fd4230 Mon Sep 17 00:00:00 2001
From: "zhenhua.zhu" <1020090284@qq.com>
Date: Tue, 13 Nov 2018 15:47:26 +0800
Subject: [PATCH 3/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0android6.0=E4=BB=A5?=
=?UTF-8?q?=E4=B8=8A=E5=8A=A8=E6=80=81=E6=9D=83=E9=99=90=E7=94=B3=E8=AF=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../plugin/uexxunfei/EUExXunfei.java | 21 ++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/src/org/zywx/wbpalmstar/plugin/uexxunfei/EUExXunfei.java b/src/org/zywx/wbpalmstar/plugin/uexxunfei/EUExXunfei.java
index 4bb28ad..1a4a0fc 100644
--- a/src/org/zywx/wbpalmstar/plugin/uexxunfei/EUExXunfei.java
+++ b/src/org/zywx/wbpalmstar/plugin/uexxunfei/EUExXunfei.java
@@ -98,7 +98,20 @@ private void initMsg(String[] params) {
public void initSpeaker(String[] params) {
initSpeakerParams = params;
- requsetPerssions(Manifest.permission.RECORD_AUDIO, "请先申请权限" + Manifest.permission.RECORD_AUDIO, 1);
+ // android6.0以上动态权限申请
+ if (mContext.checkCallingOrSelfPermission(Manifest.permission.RECORD_AUDIO)
+ != PackageManager.PERMISSION_GRANTED){
+ requsetPerssions(Manifest.permission.RECORD_AUDIO, "请先申请权限"
+ + Manifest.permission.RECORD_AUDIO, 1);
+ } else {
+ Message msg = new Message();
+ msg.obj = this;
+ msg.what = MSG_INIT_SPEAKER;
+ Bundle bd = new Bundle();
+ bd.putStringArray(BUNDLE_DATA, initSpeakerParams);
+ msg.setData(bd);
+ mHandler.sendMessage(msg);
+ }
}
private void initSpeakerMsg(String[] params) {
@@ -154,7 +167,8 @@ public void onHandleMessage(Message message) {
* @param params
*/
public void startSpeaking(String[] params) {
- if (mContext.checkCallingOrSelfPermission(Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED){
+ if (mContext.checkCallingOrSelfPermission(Manifest.permission.RECORD_AUDIO)
+ == PackageManager.PERMISSION_GRANTED){
if (mTts == null) {
return;
}
@@ -312,7 +326,6 @@ private void callBackPluginJs(String methodName, String jsonData) {
@Override
public void onRequestPermissionResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionResult(requestCode, permissions, grantResults);
-// Log.i("--grantResults.length-","grantResults----" + grantResults.length);
if (requestCode == 1){
if (grantResults[0] != PackageManager.PERMISSION_DENIED){
Message msg = new Message();
@@ -322,8 +335,6 @@ public void onRequestPermissionResult(int requestCode, @NonNull String[] permiss
bd.putStringArray(BUNDLE_DATA, initSpeakerParams);
msg.setData(bd);
mHandler.sendMessage(msg);
-// Toast.makeText(mContext, "--权限通过--", Toast.LENGTH_LONG).show();
-// Log.i("----走了2----", "----走了2----");
} else {
// 对于 ActivityCompat.shouldShowRequestPermissionRationale
// 1:用户拒绝了该权限,没有勾选"不再提醒",此方法将返回true。
From 15f1de28364c55fb84829740c53652e85c382d2b Mon Sep 17 00:00:00 2001
From: "zhenhua.zhu" <1020090284@qq.com>
Date: Wed, 14 Nov 2018 17:12:43 +0800
Subject: [PATCH 4/4] =?UTF-8?q?gradle=E4=B8=ADtargetSdkVersion=E6=9B=B4?=
=?UTF-8?q?=E6=94=B9=EF=BC=8C=E6=8F=92=E4=BB=B6=E7=89=88=E6=9C=AC=E4=BF=A1?=
=?UTF-8?q?=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
assets/widget/config.xml | 2 +-
build.gradle | 8 +++++++-
uexXunfei/info.xml | 5 +++--
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/assets/widget/config.xml b/assets/widget/config.xml
index bd5435f..0035ea3 100644
--- a/assets/widget/config.xml
+++ b/assets/widget/config.xml
@@ -5,7 +5,7 @@
-
+
false
diff --git a/build.gradle b/build.gradle
index 136be37..f956f3d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -20,11 +20,17 @@ repositories {
}
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
- compile ('org.appcan:engine:+:systemRelease@aar')
+// compile ('org.appcan:engine:+:systemRelease@aar')
+ compile(name: 'Engine-system-release', ext: 'aar')
+ compile 'com.android.support:multidex:1.0.0'
}
android {
compileSdkVersion 22
buildToolsVersion "23.0.0"
+ defaultConfig {
+ minSdkVersion 14
+ targetSdkVersion 26
+ }
lintOptions {
abortOnError false
}
diff --git a/uexXunfei/info.xml b/uexXunfei/info.xml
index d6e1473..e88a33b 100644
--- a/uexXunfei/info.xml
+++ b/uexXunfei/info.xml
@@ -1,7 +1,8 @@
- 0:科大讯飞语音插件
+ uexName="uexXunfei" version="4.3.0" build="1">
+ 1:添加动态权限申请
+ 0:科大讯飞语音插件
\ No newline at end of file