diff --git a/app/build.gradle b/app/build.gradle index 230238c..14e9574 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,8 +12,8 @@ android { applicationId "cn.shangyu.gdxzPatient" minSdkVersion 19 targetSdkVersion 26 - versionCode 58 - versionName "3.3.3" + versionCode 59 + versionName "3.3.4" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true } @@ -71,7 +71,6 @@ dependencies { implementation files('libs/glide-3.6.0.jar') implementation files('libs/gson-2.2.4.jar') implementation files('libs/locSDK_4.2.jar') - implementation files('libs/Msc.jar') implementation files('libs/pinyin4j-2.5.0.jar') implementation files('libs/SocialSDK_Sina_Simplify.jar') implementation files('libs/SocialSDK_WeChat_Simplify.jar') @@ -89,4 +88,5 @@ dependencies { compile 'me.leolin:ShortcutBadger:1.1.13@aar' implementation files('libs/HwPush_SDK_NOMAP_V2705.jar') implementation files('libs/MiPush_SDK_Client_3_6_19.jar') + implementation files('libs/Msc.jar') } diff --git a/app/libs/Msc.jar b/app/libs/Msc.jar index fae41da..a197301 100644 Binary files a/app/libs/Msc.jar and b/app/libs/Msc.jar differ diff --git a/app/libs/arm64-v8a/libmsc.so b/app/libs/arm64-v8a/libmsc.so index a07e3e9..2833104 100644 Binary files a/app/libs/arm64-v8a/libmsc.so 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 6e63fcf..8a9216f 100644 Binary files a/app/libs/armeabi-v7a/libmsc.so and b/app/libs/armeabi-v7a/libmsc.so differ diff --git a/app/libs/armeabi/libmsc.so b/app/libs/armeabi/libmsc.so deleted file mode 100644 index 553c3fb..0000000 Binary files a/app/libs/armeabi/libmsc.so and /dev/null differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8b3c12a..7268f13 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="59" + android:versionName="3.3.4" > >>" + result); + LogUtils.e("getVersonCode>>>" + result); Gson gson = new Gson(); bean = gson.fromJson(result, GanDanVersionBean.class); handler.sendEmptyMessage(2); diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/MyFeedbookActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/MyFeedbookActivity.java index 66b5ca4..be815e1 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/MyFeedbookActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/MyFeedbookActivity.java @@ -44,6 +44,7 @@ import cn.shangyu.gdxzPatient.http.HttpHelper; import cn.shangyu.gdxzPatient.http.HttpHelper.HttpResult; import cn.shangyu.gdxzPatient.utils.Constant; import cn.shangyu.gdxzPatient.utils.JsonParser; +import cn.shangyu.gdxzPatient.utils.KeDaXunFeiUtil; import cn.shangyu.gdxzPatient.utils.LogUtils; import cn.shangyu.gdxzPatient.utils.SharePrefUtil; import cn.shangyu.gdxzPatient.utils.UIUtils; @@ -152,13 +153,13 @@ public class MyFeedbookActivity extends BaseActivity implements OnClickListener if (PermissionsUtil.hasPermission(this, Manifest.permission.RECORD_AUDIO)) {//,Manifest.permission.READ_CONTACTS //有访问录音 - initVoice(); + new KeDaXunFeiUtil(MyFeedbookActivity.this, et_feedbook); } else { PermissionsUtil.requestPermission(this, new PermissionListener() { @Override public void permissionGranted(@NonNull String[] permissions) { //用户授予了访问录音的权限 - initVoice(); + new KeDaXunFeiUtil(MyFeedbookActivity.this, et_feedbook); } @Override public void permissionDenied(@NonNull String[] permissions) { @@ -170,7 +171,7 @@ public class MyFeedbookActivity extends BaseActivity implements OnClickListener } }else { - initVoice(); + new KeDaXunFeiUtil(MyFeedbookActivity.this, et_feedbook); } break; @@ -231,7 +232,6 @@ public class MyFeedbookActivity extends BaseActivity implements OnClickListener private void printResult(RecognizerResult results) { String text = JsonParser.parseIatResult(results.getResultString()); - String sn = null; // 读取json结果中的sn字段 try { diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/PersonInfoActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/PersonInfoActivity.java index 503d53b..80d57e7 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/PersonInfoActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/PersonInfoActivity.java @@ -588,7 +588,7 @@ public class PersonInfoActivity extends BaseActivity implements } }else { selectSex = ""; - tv_sex.setText(""); + tv_sex.setText("请选择性别"); } } @@ -1121,7 +1121,7 @@ public class PersonInfoActivity extends BaseActivity implements CustomToast.show(ctx, "姓名不能为空", 0); return; } - if (TextUtils.isEmpty(tv_sex.getText().toString())){ + if (TextUtils.isEmpty(tv_sex.getText().toString())||"请选择性别".equals(tv_sex.getText().toString().trim())){ CustomToast.show(ctx, "性别不能为空", 0); return; } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/SetInformationNewActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/SetInformationNewActivity.java index f4133c9..d3e53e2 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/SetInformationNewActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/SetInformationNewActivity.java @@ -33,7 +33,6 @@ import android.widget.Toast; import com.github.dfqin.grantor.PermissionListener; import com.github.dfqin.grantor.PermissionsUtil; import com.google.gson.Gson; -import com.iflytek.cloud.thirdparty.V; import com.yuntongxun.ecsdk.ECDevice; import com.yuntongxun.ecsdk.ECError; import com.yuntongxun.ecsdk.ECInitParams; diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/SettingAndHelpActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/SettingAndHelpActivity.java index dd5ae7a..7875582 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/SettingAndHelpActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/SettingAndHelpActivity.java @@ -483,7 +483,18 @@ public class SettingAndHelpActivity extends BaseActivity implements public void onClick(View v) { // TODO Auto-generated method stub DataCleanManager.clearAllCache(ctx); - BadgeCountUtils.removeBadge(UIUtils.getContext()); + //原生角标 + String brand = android.os.Build.BRAND; + if ("Xiaomi".equals(brand)){ + //小米不需要原生角标 + }else { + try { + BadgeCountUtils.removeBadge(UIUtils.getContext()); + }catch (Exception e){ + } + + } +// SharePrefUtil.saveString(UIUtils.getContext(),Constant.STEPUUID,""); SharePrefUtil.saveBoolean(UIUtils.getContext(), Constant.CONSULNEWTPOINT, false); try { diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/TheIllnessDetailActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/TheIllnessDetailActivity.java index bae8753..f519c17 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/TheIllnessDetailActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/TheIllnessDetailActivity.java @@ -30,7 +30,6 @@ import com.google.gson.Gson; import com.handmark.pulltorefresh.library.ILoadingLayout; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; -import com.iflytek.cloud.thirdparty.V; import com.nostra13.universalimageloader.core.ImageLoader; import java.text.SimpleDateFormat; @@ -610,7 +609,15 @@ public class TheIllnessDetailActivity extends BaseActivity implements View.OnCl holder.gv_img.setVisibility(View.GONE); } - + holder.iv_head.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String expert_uuid = answerList.get(position).getExpert_uuid(); + Intent intent = new Intent(TheIllnessDetailActivity.this,ExpertDetailActivity.class); + intent.putExtra("uuid",expert_uuid); + startActivity(intent); + } + }); return convertView; } class ViewHolder { diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/application/BaseApplication.java b/app/src/main/java/cn/shangyu/gdxzPatient/application/BaseApplication.java index e3bec1c..28cdf94 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/application/BaseApplication.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/application/BaseApplication.java @@ -201,7 +201,7 @@ public class BaseApplication extends Application { UMShareAPI.get(this); // 科大讯飞初始化 - SpeechUtility.createUtility(context, SpeechConstant.APPID + "=5975b0e3"); + SpeechUtility.createUtility(this, SpeechConstant.APPID + "=5975b0e3"); // try { // //以下都不是必须的,根据需要自行选择,一般来说只需要 debug,缓存相关,cookie相关的 就可以了 diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/bean/ConsultBean.java b/app/src/main/java/cn/shangyu/gdxzPatient/bean/ConsultBean.java index c13ceb0..2db957a 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/bean/ConsultBean.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/bean/ConsultBean.java @@ -28,9 +28,16 @@ public class ConsultBean { private String realName;// 专家姓名 private String photo;// 专家头像 private String count;// 消息数 - + private String diseaseName;// 肝胆病名称 + + public String getDiseaseName() { + return diseaseName; + } + + public void setDiseaseName(String diseaseName) { + this.diseaseName = diseaseName; + } - public String getCount() { return count; } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/common/CCPAppManager.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/common/CCPAppManager.java index 5e05314..b5912be 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/common/CCPAppManager.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/common/CCPAppManager.java @@ -171,6 +171,7 @@ public class CCPAppManager { * @param path */ public static void doViewFilePrevieIntent(Context context, String path) { + LogUtils.e("path = "+path); try { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingFragment.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingFragment.java index bcb71ab..7e5b23e 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingFragment.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingFragment.java @@ -1333,17 +1333,24 @@ public class ChattingFragment extends CCPFragment implements } int i = ConversationSqlManager.qureySessionUnreadCountByFlag("1"); //原生角标 - BadgeCountUtils.setBadgeCount(UIUtils.getContext(),i); - //华为角标 - setBadgeNum(i,UIUtils.getContext()); + String brand = android.os.Build.BRAND; + if ("Xiaomi".equals(brand)){ + //小米不需要原生角标 + }else { + try { + BadgeCountUtils.setBadgeCount(UIUtils.getContext(),i); + }catch (Exception e){ + } + //华为角标 + setBadgeNum(i,UIUtils.getContext()); + } - LogUtil.i("unreadCount1 = "+unreadCount+",notifyUnreadCount1 = "+notifyUnreadCount+",qureySessionUnreadCountByFlag1 = "+i); +// LogUtil.i("unreadCount1 = "+unreadCount+",notifyUnreadCount1 = "+notifyUnreadCount+",qureySessionUnreadCountByFlag1 = "+i); } @Override public void onStop() { super.onStop(); flag = false; - LogUtil.i("flag = "+flag); } /** * 设置角标 diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingListAdapter2.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingListAdapter2.java index b022b19..1167a44 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingListAdapter2.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingListAdapter2.java @@ -165,7 +165,7 @@ public class ChattingListAdapter2 extends CCPListAdapter { int messageType = ChattingsRowUtils.getChattingMessageType(item, item.getUserData()); - LogUtils.e(messageType + item.getUserData()); + LogUtils.e(messageType+"," + item.getUserData()); BaseChattingRow chattingRow = getBaseChattingRow(messageType, item.getDirection() == ECMessage.Direction.SEND); View chatView = chattingRow.buildChatView( diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/view/CCPChattingFooter2.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/view/CCPChattingFooter2.java index e9b249f..5396667 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/view/CCPChattingFooter2.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/view/CCPChattingFooter2.java @@ -302,6 +302,10 @@ public class CCPChattingFooter2 extends LinearLayout { LogUtil.d(LogUtil.getLogUtilsTag(CCPChattingFooter2.class), "CCPChatFooter voice recording action up "); resetVoiceRecordingButton(); break; + case MotionEvent.ACTION_CANCEL: + LogUtil.d(LogUtil.getLogUtilsTag(CCPChattingFooter2.class), "CCPChatFooter voice recording action cancel "); + resetVoiceRecordingButton(); + break; } return false; diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/fragment/BasicInfoFragment.java b/app/src/main/java/cn/shangyu/gdxzPatient/fragment/BasicInfoFragment.java index 0fa2c94..afb65b1 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/fragment/BasicInfoFragment.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/fragment/BasicInfoFragment.java @@ -6,7 +6,6 @@ import android.widget.RelativeLayout; import android.widget.TextView; import com.google.gson.Gson; -import com.iflytek.cloud.thirdparty.V; import java.io.Serializable; import java.text.SimpleDateFormat; diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/fragment/ConsultFragment.java b/app/src/main/java/cn/shangyu/gdxzPatient/fragment/ConsultFragment.java index 2c8f890..0cea8d3 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/fragment/ConsultFragment.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/fragment/ConsultFragment.java @@ -7,6 +7,7 @@ import org.apache.http.message.BasicNameValuePair; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import org.w3c.dom.Text; import android.app.Activity; import android.content.Intent; @@ -138,6 +139,7 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, consultBean.setRealName(data .getString("realName")); consultBean.setPhoto(data.getString("photo")); + consultBean.setDiseaseName(data.optString("diseaseName")); headDatas.add(consultBean); } else { consultBean.setContent(data @@ -155,6 +157,7 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, consultBean.setRealName(data .getString("realName")); consultBean.setPhoto(data.getString("photo")); + consultBean.setDiseaseName(data.optString("diseaseName")); footDatas.add(consultBean); } datas.add(consultBean); @@ -205,8 +208,9 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, + data.getString("expertUuid"));// 添加appId consultBean.setRealName(data .getString("realName")); - consultBean.setPhoto(data - .getString("photo")); + consultBean.setPhoto(data.getString("photo")); + consultBean.setDiseaseName(data.optString("diseaseName")); + headDatas2.add(consultBean); } else { consultBean.setContent(data @@ -227,6 +231,7 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, .getString("realName")); consultBean.setPhoto(data .getString("photo")); + consultBean.setDiseaseName(data.optString("diseaseName")); footDatas2.add(consultBean); } datas2.add(consultBean); @@ -254,6 +259,7 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, }; }; + private String name;//本人姓名 @Override public void onAttach(Activity activity) { @@ -267,7 +273,7 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, Bundle savedInstanceState) { LogUtils.w("onCreateView==ConsultFragment"); view = UIUtils.inflate(R.layout.fragment_consult_list); - + name = SharePrefUtil.getString(getActivity(), Constant.REALNAME, ""); sp = mActivity.getSharedPreferences("config", mActivity.MODE_PRIVATE); initView(); initPullToRefresh(); @@ -418,6 +424,7 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, parameters);// 请求网络 // result = httpResult.getString();// str为服务器返回的json串 String result = httpResult.getString();// str为服务器返回的json串 + LogUtils.i("result = "+result); if (result == null) { ToastUtil.showMessage("请求服务器失败,请重试"); @@ -479,10 +486,10 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, @Override public View getView(final int position, View convertView, ViewGroup parent) { - // LogUtils.w("adapter===+getView"); final ViewHolder vh; if (convertView == null) { vh = new ViewHolder(); + convertView = UIUtils.inflate(R.layout.item_consult); vh.tv_content = (TextView) convertView .findViewById(R.id.tv_content); @@ -497,11 +504,17 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, .findViewById(R.id.tv_redpoint); vh.iv_left_pic = (ImageView) convertView .findViewById(R.id.iv_left_pic); +// convertView = UIUtils.inflate(R.layout.item_consult1); +// vh.tv_state = convertView.findViewById(R.id.tv_state); +// vh.tv_name = convertView.findViewById(R.id.tv_name); +// vh.tv_contant = convertView.findViewById(R.id.tv_contant); +// vh.tv_drungtype = convertView.findViewById(R.id.tv_drungtype); +// vh.tv_time = convertView.findViewById(R.id.tv_time); convertView.setTag(vh); } else { vh = (ViewHolder) convertView.getTag(); } - if (headDatas.size() > position) { + if (headDatas.size() > position) {//未回答 LogUtils.v("未回答position==" + position + "headDatas.size()==" + headDatas.size()); vh.tv_content.setText(headDatas.get(position).getContent()); @@ -530,19 +543,12 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, }); vh.ll_state_chat.setClickable(false); - // vh.iv_left_pic.setBackgroundResource(R.drawable.new_consult_n); - /* - * if (headDatas.size()==position+1) { - * vh.tv_bg.setVisibility(View.VISIBLE); }else { - * vh.tv_bg.setVisibility(View.GONE); } - */ - - } else { - // if (footDatas.size()>0) { - // LogUtils.v("position==" + position + "headDatas.size()==" - // + headDatas.size()); - // LogUtils.v("footDatas.get(position - headDatas.size()).getAvatar()==" - // + footDatas.get(position - headDatas.size()).getPhoto()); +// vh.tv_name.setText(name); +// vh.tv_contant.setText(headDatas.get(position).getContent()); +// vh.tv_drungtype.setText(headDatas.get(position).getDiseaseName()); +// vh.tv_time.setText(headDatas.get(position).getCreateDate().split(" ")[0]); +// vh.tv_state.setText("未回答"); + } else {//咨询中 ImageLoader.getInstance().displayImage( Url.imgUrl + footDatas.get(position - headDatas.size()) @@ -656,8 +662,7 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, } }); - } else if ("3".equals(footDatas - .get(position - headDatas.size()).getState())) { + } else if ("3".equals(footDatas.get(position - headDatas.size()).getState())) {//已关闭 vh.tv_redpoint.setVisibility(View.GONE); vh.tv_state.setText("历史咨询"); vh.ll_state_chat.setClickable(true); @@ -718,7 +723,7 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, /** * 点击图片 */ - vh.iv_left_pic.setOnClickListener(new OnClickListener() { + vh.iv_left_pic.setOnClickListener(new OnClickListener() {//问题详情 @Override public void onClick(View v) { // TODO Auto-generated method stub @@ -759,6 +764,11 @@ public class ConsultFragment extends BaseFragment implements OnClickListener, public TextView tv_redpoint;// 小红点 public ImageView iv_left_pic;// 头像 + public TextView tv_name; + public TextView tv_contant; + public TextView tv_drungtype; + public TextView tv_time; + } @Override diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/splash/WelcomeUI.java b/app/src/main/java/cn/shangyu/gdxzPatient/splash/WelcomeUI.java index 2a2237a..cc5605a 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/splash/WelcomeUI.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/splash/WelcomeUI.java @@ -63,6 +63,11 @@ public class WelcomeUI extends Activity implements AnimationListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + //按home键或后退键返回到桌面,再次进入程序会重新启动的解决办法 + if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { + finish(); + return; + } setContentView(R.layout.welcome); mIv_start = (ImageView) findViewById(R.id.iv_start); ll_time = (LinearLayout) findViewById(R.id.ll_wel_time); diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/utils/KeDaXunFeiUtil.java b/app/src/main/java/cn/shangyu/gdxzPatient/utils/KeDaXunFeiUtil.java index 25655ec..c2304d1 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/utils/KeDaXunFeiUtil.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/utils/KeDaXunFeiUtil.java @@ -7,37 +7,252 @@ import org.json.JSONException; import org.json.JSONObject; import android.content.Context; +import android.os.Bundle; +import android.os.Environment; +import android.util.Log; import android.widget.EditText; import com.iflytek.cloud.ErrorCode; import com.iflytek.cloud.InitListener; +import com.iflytek.cloud.RecognizerListener; import com.iflytek.cloud.RecognizerResult; import com.iflytek.cloud.SpeechConstant; import com.iflytek.cloud.SpeechError; +import com.iflytek.cloud.SpeechRecognizer; import com.iflytek.cloud.ui.RecognizerDialog; import com.iflytek.cloud.ui.RecognizerDialogListener; +import cn.shangyu.gdxzPatient.R; +import cn.shangyu.gdxzPatient.ecdemo.common.utils.ToastUtil; + public class KeDaXunFeiUtil { +// +// public String lastContent; +// public Context ctx; +// public EditText et; +// +// public KeDaXunFeiUtil(Context ctx, EditText et) { +// this.ctx = ctx; +// this.et = et; +// initVoice(); +// } +// +// public void initVoice() { +// // TODO Auto-generated method stub +// lastContent = et.getText().toString().trim(); +// RecognizerDialog mDialog = new RecognizerDialog(ctx, mInitListener); +// mDialog.setParameter(SpeechConstant.VAD_EOS, "3000"); +// mDialog.setListener(mRecognizerDialogListener); +// mDialog.show(); +// } +// +// /** +// * 初始化监听器。 +// */ +// private InitListener mInitListener = new InitListener() { +// +// @Override +// public void onInit(int code) { +// Log.d("TAG", "SpeechRecognizer init() code = " + code); +// if (code != ErrorCode.SUCCESS) { +// // showTip("初始化失败,错误码:" + code); +// } +// } +// }; +// /** +// * 听写UI监听器 +// */ +// private RecognizerDialogListener mRecognizerDialogListener = new RecognizerDialogListener() { +// public void onResult(RecognizerResult results, boolean isLast) { +// +// printResult(results); +// +// } +// +// /** +// * 识别回调错误. +// */ +// public void onError(SpeechError error) { +// if (error.getErrorCode() == 14002) { +// // showTip(error.getPlainDescription(true) + "\n请确认是否已开通翻译功能"); +// } else { +// // showTip(error.getPlainDescription(true)); +// } +// } +// +// }; +// +// // 用HashMap存储听写结果 +// private HashMap mIatResults = new LinkedHashMap(); +// +// private void printResult(RecognizerResult results) { +// String text = JsonParser.parseIatResult(results.getResultString()); +// +// String sn = null; +// // 读取json结果中的sn字段 +// try { +// JSONObject resultJson = new JSONObject(results.getResultString()); +// sn = resultJson.optString("sn"); +// } catch (JSONException e) { +// e.printStackTrace(); +// } +// +// mIatResults.put(sn, text); +// +// StringBuffer resultBuffer = new StringBuffer(); +// for (String key : mIatResults.keySet()) { +// resultBuffer.append(mIatResults.get(key)); +// LogUtils.e(resultBuffer.toString()); +// } +// +// et.setText(lastContent + resultBuffer.toString()); +// et.setSelection(et.length()); +// +// } public String lastContent; public Context ctx; public EditText et; - + RecognizerDialog mDialog; + // 语音听写对象 + private SpeechRecognizer mIat; + // 引擎类型 + private String mEngineType = SpeechConstant.TYPE_CLOUD; + private String resultType = "json"; public KeDaXunFeiUtil(Context ctx, EditText et) { this.ctx = ctx; this.et = et; initVoice(); } - + int ret = 0; // 函数调用返回值 public void initVoice() { // TODO Auto-generated method stub lastContent = et.getText().toString().trim(); - RecognizerDialog mDialog = new RecognizerDialog(ctx, mInitListener); - mDialog.setParameter(SpeechConstant.VAD_EOS, "3000"); - mDialog.setListener(mRecognizerDialogListener); - mDialog.show(); + // 使用SpeechRecognizer对象,可根据回调消息自定义界面; + mIat = SpeechRecognizer.createRecognizer(ctx, mInitListener); + // 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音 + setParam(); +// mIat.setParameter(SpeechConstant.VAD_EOS, "3000"); +// mDialog = new RecognizerDialog(ctx, mInitListener); +// mDialog.setListener(mRecognizerDialogListener); +// mDialog.show(); + ret = mIat.startListening(mRecognizerListener); + if (ret != ErrorCode.SUCCESS) { + ToastUtil.showMessage("听写失败" );//+ ret+",请点击网址https://www.xfyun.cn/document/error-code查询解决方案" + } } + /** + * 听写监听器。 + */ + private RecognizerListener mRecognizerListener = new RecognizerListener() { + + @Override + public void onBeginOfSpeech() { + // 此回调表示:sdk内部录音机已经准备好了,用户可以开始语音输入 + ToastUtil.showMessage("请开始说话"); + } + + @Override + public void onError(SpeechError error) { + // Tips: + // 错误码:10118(您没有说话),可能是录音机权限被禁,需要提示用户打开应用的录音权限。 + if( error.getErrorCode() == 14002) { + ToastUtil.showMessage("请确认是否已开通翻译功能" ); + } else { + ToastUtil.showMessage("您好像没有说话哦"); + } + } + + @Override + public void onEndOfSpeech() { + // 此回调表示:检测到了语音的尾端点,已经进入识别过程,不再接受语音输入 + ToastUtil.showMessage("结束说话"); + } + + @Override + public void onResult(RecognizerResult results, boolean isLast) { + Log.d("TAG", results.getResultString()); + if (resultType.equals("json")) { + + printResult(results); + } + } + + @Override + public void onVolumeChanged(int volume, byte[] data) { + ToastUtil.showMessage("正在录音"); +// Log.d("TAG", "返回音频数据:"+data.length); + } + + @Override + public void onEvent(int eventType, int arg1, int arg2, Bundle obj) { + // 以下代码用于获取与云端的会话id,当业务出错时将会话id提供给技术支持人员,可用于查询会话日志,定位出错原因 + // 若使用本地能力,会话id为null + // if (SpeechEvent.EVENT_SESSION_ID == eventType) { + // String sid = obj.getString(SpeechEvent.KEY_EVENT_SESSION_ID); + // Log.d(TAG, "session id =" + sid); + // } + } + }; + /** + * 参数设置 + * + * @return + */ + public void setParam() { + // 清空参数 + mIat.setParameter(SpeechConstant.PARAMS, null); + + // 设置听写引擎 + mIat.setParameter(SpeechConstant.ENGINE_TYPE, mEngineType); + // 设置返回结果格式 + mIat.setParameter(SpeechConstant.RESULT_TYPE, resultType); + +// this.mTranslateEnable = mSharedPreferences.getBoolean( this.getString(R.string.pref_key_translate), false ); +// if( mTranslateEnable ){ +// Log.i( TAG, "translate enable" ); +// mIat.setParameter( SpeechConstant.ASR_SCH, "1" ); +// mIat.setParameter( SpeechConstant.ADD_CAP, "translate" ); +// mIat.setParameter( SpeechConstant.TRS_SRC, "its" ); +// } +// +// String lag = mSharedPreferences.getString("iat_language_preference", +// "mandarin"); +// if (lag.equals("en_us")) { +// // 设置语言 +// mIat.setParameter(SpeechConstant.LANGUAGE, "en_us"); +// mIat.setParameter(SpeechConstant.ACCENT, null); +// +// if( mTranslateEnable ){ +// mIat.setParameter( SpeechConstant.ORI_LANG, "en" ); +// mIat.setParameter( SpeechConstant.TRANS_LANG, "cn" ); +// } +// } else { +// // 设置语言 +// mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn"); +// // 设置语言区域 +// mIat.setParameter(SpeechConstant.ACCENT, lag); +// +// if( mTranslateEnable ){ +// mIat.setParameter( SpeechConstant.ORI_LANG, "cn" ); +// mIat.setParameter( SpeechConstant.TRANS_LANG, "en" ); +// } +// } + //此处用于设置dialog中不显示错误码信息 + //mIat.setParameter("view_tips_plain","false"); + + // 设置语音前端点:静音超时时间,即用户多长时间不说话则当做超时处理 + mIat.setParameter(SpeechConstant.VAD_BOS,"4000"); + + // 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音 + mIat.setParameter(SpeechConstant.VAD_EOS,"3000"); + + // 设置标点符号,设置为"0"返回结果无标点,设置为"1"返回结果有标点 + mIat.setParameter(SpeechConstant.ASR_PTT,"1"); + + + } /** * 初始化监听器。 */ @@ -45,7 +260,7 @@ public class KeDaXunFeiUtil { @Override public void onInit(int code) { - // Log.d(TAG, "SpeechRecognizer init() code = " + code); + Log.d("TAG", "SpeechRecognizer init() code = " + code); if (code != ErrorCode.SUCCESS) { // showTip("初始化失败,错误码:" + code); } @@ -56,7 +271,6 @@ public class KeDaXunFeiUtil { */ private RecognizerDialogListener mRecognizerDialogListener = new RecognizerDialogListener() { public void onResult(RecognizerResult results, boolean isLast) { - printResult(results); } @@ -94,7 +308,6 @@ public class KeDaXunFeiUtil { StringBuffer resultBuffer = new StringBuffer(); for (String key : mIatResults.keySet()) { resultBuffer.append(mIatResults.get(key)); - LogUtils.e(resultBuffer.toString()); } et.setText(lastContent + resultBuffer.toString()); @@ -102,4 +315,17 @@ public class KeDaXunFeiUtil { } + public void dissDialog() { + if (mDialog.isShowing()) { + mDialog.dismiss(); + } + if( null != mIat ){ + // 退出时释放连接 + mIat.cancel(); + mIat.destroy(); + } + + } + + } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/utils/Url.java b/app/src/main/java/cn/shangyu/gdxzPatient/utils/Url.java index 8c9c23e..1cb7037 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/utils/Url.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/utils/Url.java @@ -17,27 +17,27 @@ public class Url { // public static String imgUrl="http://192.168.1.11:8081/gdxz/";//图片地址的拼接 b // --------------------------------------------------------------------------------------------------------- // 肝胆相照正式服务器 - public static String url = "http://app.igandan.com/app/patient/"; - public static String urlNew = "http://app.igandan.com/app/patientApp/"; - public static String imgUrl = "http://doc.igandan.com/app/";// 图片地址的拼接 - public static String upLoadUrl = "http://app.igandan.com/app/upload/"; - public static String zcxy = "http://app.igandan.com/patient_zcxy.jsp"; - public static String urlVer = "http://app.igandan.com/app/"; - public static String urlH5 = "http://wx.igandan.com/"; - public static String urlmyLan = "https://app.igandan.com/app/patientAPI/";//迈兰、 - public static String urlping = "https://app.igandan.com/app/pingPatient/";//ping +// public static String url = "http://app.igandan.com/app/patient/"; +// public static String urlNew = "http://app.igandan.com/app/patientApp/"; +// public static String imgUrl = "http://doc.igandan.com/app/";// 图片地址的拼接 +// public static String upLoadUrl = "http://app.igandan.com/app/upload/"; +// public static String zcxy = "http://app.igandan.com/patient_zcxy.jsp"; +// public static String urlVer = "http://app.igandan.com/app/"; +// public static String urlH5 = "http://wx.igandan.com/"; +// public static String urlmyLan = "https://app.igandan.com/app/patientAPI/";//迈兰、 +// public static String urlping = "https://app.igandan.com/app/pingPatient/";//ping // --------------------------------------------------------------------------------------------------------- //肝胆相照测试 -// public static String urlVer = "https://tapp.igandan.org/app/";// -// public static String url = "https://tapp.igandan.org/app/patient/";// -// public static String urlNew = "https://tapp.igandan.org/app/patientApp/";// -// public static String imgUrl = "http://tdoc.igandan.org/app/";// -// public static String upLoadUrl = "https://tapp.igandan.org/app/upload";// -// public static String zcxy = "https://tapp.igandan.org/patient_zcxy.jsp";// -// public static String urlH5 = "https://tapp.igandan.org/";// -// public static String urlmyLan = "https://tapp.igandan.org/app/patientAPI/";//迈兰 -// public static String urlping = "https://tapp.igandan.org/app/pingPatient/";//ping + public static String urlVer = "https://tapp.igandan.org/app/";// + public static String url = "https://tapp.igandan.org/app/patient/";// + public static String urlNew = "https://tapp.igandan.org/app/patientApp/";// + public static String imgUrl = "http://tdoc.igandan.org/app/";// + public static String upLoadUrl = "https://tapp.igandan.org/app/upload";// + public static String zcxy = "https://tapp.igandan.org/patient_zcxy.jsp";// + public static String urlH5 = "https://tapp.igandan.org/";// + public static String urlmyLan = "https://tapp.igandan.org/app/patientAPI/";//迈兰 + public static String urlping = "https://tapp.igandan.org/app/pingPatient/";//ping // public static String imgUrl = "http://192.168.100.99:8080/Mgdxz/"; // public static String urlVer = "http://192.168.100.99:8080/Mgdxz/app/"; @@ -195,7 +195,7 @@ public class Url { public static String sienceRead = url + "read";// 肝胆首页的轮播信息 public static String getVerImg = urlVer + "VerifyImage/getcode"; public static String getVerCode = urlVer + "VerifyResult/valide"; - public static String getVersonCode = urlVer + "appVer/ckCurrVer"; + public static String getVersonCode = urlVer + "appVer/ckCurrVer";//版本更新 public static String getDelVisit = urlVer + "appVer/ckCurrVer";// 取消随访接口 diff --git a/app/src/main/res/layout/activity_askamoreillness.xml b/app/src/main/res/layout/activity_askamoreillness.xml index 703aab8..11a6fa5 100644 --- a/app/src/main/res/layout/activity_askamoreillness.xml +++ b/app/src/main/res/layout/activity_askamoreillness.xml @@ -133,8 +133,9 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_patientconslut.xml b/app/src/main/res/layout/activity_patientconslut.xml index af80b9a..72b3744 100644 --- a/app/src/main/res/layout/activity_patientconslut.xml +++ b/app/src/main/res/layout/activity_patientconslut.xml @@ -35,7 +35,7 @@ android:layout_weight="1" android:button="@null" android:textColor="@color/black" - android:text="肝病信息" /> + android:text="病史信息" /> diff --git a/app/src/main/res/layout/activity_personinfo1.xml b/app/src/main/res/layout/activity_personinfo1.xml index 16b7cf4..0dd5c7c 100644 --- a/app/src/main/res/layout/activity_personinfo1.xml +++ b/app/src/main/res/layout/activity_personinfo1.xml @@ -189,7 +189,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" - android:text="" + android:text="请选择性别" android:textColor="@color/c999999" android:textSize="@dimen/textsizea" /> @@ -350,7 +350,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" - android:text="10" + android:text="请选择出生日期" android:textColor="@color/c999999" android:textSize="@dimen/textsizea" /> @@ -536,7 +536,7 @@ android:layout_marginRight="10dp" android:gravity="right" android:singleLine="true" - android:text="" + android:text="请选择所在地" android:textColor="@color/c999999" android:textSize="@dimen/textsizea" /> diff --git a/app/src/main/res/layout/item_consult1.xml b/app/src/main/res/layout/item_consult1.xml new file mode 100644 index 0000000..8beac10 --- /dev/null +++ b/app/src/main/res/layout/item_consult1.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file