Bläddra i källkod

消息,通讯录添加语音识别搜索完成

FANGLH 9 år sedan
förälder
incheckning
d7b3910199

+ 33 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/WorkDailyShowActivity.java

@@ -14,14 +14,20 @@ import android.view.MenuItem;
 import android.view.View;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.AdapterView;
+import android.widget.ImageView;
 import android.widget.ListView;
 import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
+import com.iflytek.cloud.speech.RecognizerResult;
+import com.iflytek.cloud.speech.SpeechError;
+import com.iflytek.cloud.ui.RecognizerDialogListener;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.adapter.WorkDailyAdapter;
+import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
+import com.xzjmyk.pm.activity.audio.voicerecognition.VoiceToWord;
 import com.xzjmyk.pm.activity.bean.oa.WorkDailyBean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
@@ -48,7 +54,7 @@ import java.util.regex.Pattern;
 /**
  * Created by FANGlh on 2016/11/1.
  */
-public class WorkDailyShowActivity extends BaseActivity {
+public class WorkDailyShowActivity extends BaseActivity implements RecognizerDialogListener {
     private static final int DELETE_DOC_REQUEST_SUCCESSFULLY = 1219;
     private ClearEditText mSearchEt;
     private PullToRefreshListView mPullToRefreshListView;
@@ -62,6 +68,7 @@ public class WorkDailyShowActivity extends BaseActivity {
     private List<WorkDailyBean> click_list;
     private List<WorkDailyBean> last_list;
     private String delete_succeed;
+    private ImageView voice_search;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -76,6 +83,7 @@ public class WorkDailyShowActivity extends BaseActivity {
         getSupportActionBar().setTitle("日报记录");
         mSearchEt = (ClearEditText) findViewById(R.id.work_daily_search_edit);
         mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.work_daily_context_ptlv);
+        voice_search = (ImageView) findViewById(R.id.voice_search_iv);
 
         mEmptyLayout = new EmptyLayout(this, mPullToRefreshListView.getRefreshableView());
         mEmptyLayout.setShowEmptyButton(false);
@@ -88,6 +96,15 @@ public class WorkDailyShowActivity extends BaseActivity {
         mWorkDailyAdapter.setmWorkDailyBeanList(real_list);
         mPullToRefreshListView.getRefreshableView().setAdapter(mWorkDailyAdapter);
         real_list = mWorkDailyAdapter.getmWorkDailyBeanList();
+        final VoiceToWord voice = new VoiceToWord(mContext,"534e3fe2");
+        voice.setRecognizerDialogListener(this);  //自己调用自己
+        voice_search.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                voice_search.setImageResource(R.drawable.btn_yuyin_pressed);
+                voice.GetWordFromVoice();
+            }
+        });
         mSearchEt.addTextChangedListener(new TextWatcher() {
             @Override
             public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -363,4 +380,19 @@ public class WorkDailyShowActivity extends BaseActivity {
         InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
         imm.hideSoftInputFromWindow(mSearchEt.getWindowToken(), 0);
     }
+
+    @Override
+    public void onResult(RecognizerResult recognizerResult, boolean b) {
+        String text = JsonParser.parseIatResult(recognizerResult.getResultString());
+        System.out.println(text);
+        Toast.makeText(mContext, text, Toast.LENGTH_LONG).show();
+
+        voice_search.setImageResource(R.drawable.btn_yuyin_nor);
+        mSearchEt.setText(mSearchEt.getText().toString() + text);
+    }
+
+    @Override
+    public void onError(SpeechError speechError) {
+
+    }
 }

+ 35 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/ContactFragment.java

@@ -16,16 +16,23 @@ import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.AdapterView;
+import android.widget.ImageView;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.iflytek.cloud.speech.RecognizerResult;
+import com.iflytek.cloud.speech.SpeechError;
+import com.iflytek.cloud.ui.RecognizerDialogListener;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.AppConstant;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.adapter.FriendSortAdapter;
+import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
+import com.xzjmyk.pm.activity.audio.voicerecognition.VoiceToWord;
 import com.xzjmyk.pm.activity.bean.Friend;
 import com.xzjmyk.pm.activity.sortlist.BaseComparator;
 import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
@@ -71,7 +78,7 @@ import se.emilsjolander.stickylistheaders.StickyListHeadersListView;
 /**
  * Created by pengminggong on 2016/10/12.
  */
-public class ContactFragment extends EasyFragment implements View.OnClickListener {
+public class ContactFragment extends EasyFragment implements View.OnClickListener , RecognizerDialogListener {
     @ViewInject(R.id.sidebar)
     private SideBar sidebar;
     @ViewInject(R.id.text_dialog)
@@ -113,6 +120,7 @@ public class ContactFragment extends EasyFragment implements View.OnClickListene
             }
         }
     };
+    private ImageView voice_search;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -196,6 +204,16 @@ public class ContactFragment extends EasyFragment implements View.OnClickListene
                 }
             }
         });
+
+        final VoiceToWord voice = new VoiceToWord(ct,"534e3fe2");
+        voice.setRecognizerDialogListener(this);  //自己调用自己
+        voice_search.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                voice_search.setImageResource(R.drawable.btn_yuyin_pressed);
+                voice.GetWordFromVoice();
+            }
+        });
         //搜索框处理
         if (search_edit == null) return;
         search_edit.addTextChangedListener(new TextWatcher() {
@@ -242,6 +260,7 @@ public class ContactFragment extends EasyFragment implements View.OnClickListene
         View headview = LayoutInflater.from(ct).inflate(R.layout.header_fragment_contact, null);
         refreshListView.addHeaderView(headview);
         search_edit = (ClearEditText) headview.findViewById(R.id.search_edit);
+        voice_search = (ImageView) headview.findViewById(R.id.voice_search_iv);
         headview.findViewById(R.id.company).setOnClickListener(this);//企业结构
         headview.findViewById(R.id.group).setOnClickListener(this);//商务群
         headview.findViewById(R.id.uu_friend).setOnClickListener(this);//我的好友
@@ -568,4 +587,19 @@ public class ContactFragment extends EasyFragment implements View.OnClickListene
                 break;
         }
     }
+
+    @Override
+    public void onResult(RecognizerResult recognizerResult, boolean b) {
+        String text = JsonParser.parseIatResult(recognizerResult.getResultString());
+        System.out.println(text);
+        Toast.makeText(ct, text, Toast.LENGTH_LONG).show();
+
+        voice_search.setImageResource(R.drawable.btn_yuyin_nor);
+        search_edit.setText(search_edit.getText().toString() + text);
+    }
+
+    @Override
+    public void onError(SpeechError speechError) {
+
+    }
 }

+ 34 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -21,6 +21,7 @@ import android.widget.AdapterView;
 import android.widget.ImageView;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -29,6 +30,9 @@ import com.android.volley.VolleyError;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
 import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
+import com.iflytek.cloud.speech.RecognizerResult;
+import com.iflytek.cloud.speech.SpeechError;
+import com.iflytek.cloud.ui.RecognizerDialogListener;
 import com.roamer.slidelistview.SlideBaseAdapter;
 import com.roamer.slidelistview.SlideListView;
 import com.roamer.slidelistview.SlideListView.SlideMode;
@@ -36,6 +40,8 @@ import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.AppConstant;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
+import com.xzjmyk.pm.activity.audio.voicerecognition.VoiceToWord;
 import com.xzjmyk.pm.activity.bean.AttentionUser;
 import com.xzjmyk.pm.activity.bean.Friend;
 import com.xzjmyk.pm.activity.bean.message.SubscriptionMessage;
@@ -89,7 +95,7 @@ import java.util.Map;
  * @desc:消息列表
  * @author:Administrator on 2016/2/17 17:33
  */
-public class MessageFragment extends EasyFragment {
+public class MessageFragment extends EasyFragment implements RecognizerDialogListener {
     private boolean mNeedUpdate = true;
     private ClearEditText mClearEditText;
     private PullToRefreshSlideListView mPullToRefreshListView;
@@ -130,6 +136,22 @@ public class MessageFragment extends EasyFragment {
 
     public OnRefreshUIListener refreshRedUIListener = null;
     private ArrayList<SubscriptionMessage> SubscriptionMessages;
+    private ImageView voice_search;
+
+    @Override
+    public void onResult(RecognizerResult recognizerResult, boolean b) {
+        String text = JsonParser.parseIatResult(recognizerResult.getResultString());
+        System.out.println(text);
+        Toast.makeText(ct, text, Toast.LENGTH_LONG).show();
+
+        voice_search.setImageResource(R.drawable.btn_yuyin_nor);
+        mClearEditText.setText(mClearEditText.getText().toString() + text);
+    }
+
+    @Override
+    public void onError(SpeechError speechError) {
+
+    }
 
     public interface OnRefreshUIListener {
         void updata(int num);
@@ -206,6 +228,17 @@ public class MessageFragment extends EasyFragment {
     private void initView() {
         mNetTextView = (DrawableCenterTextView) findViewById(R.id.message_net_set);
         mClearEditText = (ClearEditText) findViewById(R.id.search_edit);
+        voice_search = (ImageView) findViewById(R.id.voice_search_iv);
+
+        final VoiceToWord voice = new VoiceToWord(ct,"534e3fe2");
+        voice.setRecognizerDialogListener(this);  //自己调用自己
+        voice_search.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                voice_search.setImageResource(R.drawable.btn_yuyin_pressed);
+                voice.GetWordFromVoice();
+            }
+        });
         mClearEditText.addTextChangedListener(new TextWatcher() {
             @Override
             public void onTextChanged(CharSequence s, int start, int before, int count) {

+ 0 - 3
WeiChat/src/main/res/layout/activity_add_work_daily.xml

@@ -55,7 +55,6 @@
                         android:layout_gravity="right"
                         android:visibility="visible"
                         android:layout_marginRight="20dp"
-                        android:padding="5dp"
                         />
                 <TextView
                     android:id="@+id/summary_limit_tv"
@@ -109,7 +108,6 @@
                         android:layout_gravity="right"
                         android:visibility="visible"
                         android:layout_marginRight="20dp"
-                        android:padding="5dp"
                         />
                     <TextView
                         android:id="@+id/plan_limit_tv"
@@ -162,7 +160,6 @@
                         android:layout_gravity="right"
                         android:visibility="visible"
                         android:layout_marginRight="10dp"
-                        android:padding="5dp"
                         android:layout_alignParentRight="true"
                         />
                     <ImageView

+ 11 - 0
WeiChat/src/main/res/layout/activity_work_daily.xml

@@ -31,6 +31,17 @@
             android:textColor="@color/dark_grey"
             android:textColorHint="@color/grey"
             android:textSize="15sp" />
+        <ImageView
+            android:id="@+id/voice_search_iv"
+            android:layout_width="30dp"
+            android:layout_height="30dp"
+            android:background="@drawable/btn_yuyin_nor"
+            android:visibility="visible"
+            android:layout_marginRight="25dp"
+            android:layout_alignParentRight="true"
+            android:layout_alignRight="@+id/work_daily_search_edit"
+            android:layout_marginTop="3dp"
+            />
 
     </RelativeLayout>
 

+ 12 - 0
WeiChat/src/main/res/layout/fragment_message.xml

@@ -28,6 +28,18 @@
             android:textColor="@color/dark_grey"
             android:textColorHint="@color/grey"
             android:textSize="15sp" />
+
+        <ImageView
+            android:id="@+id/voice_search_iv"
+            android:layout_width="30dp"
+            android:layout_height="30dp"
+            android:background="@drawable/btn_yuyin_nor"
+            android:visibility="visible"
+            android:layout_marginRight="25dp"
+            android:layout_alignParentRight="true"
+            android:layout_alignRight="@+id/search_edit"
+            android:layout_marginTop="3dp"
+            />
     </RelativeLayout>
 
     <com.xzjmyk.pm.activity.view.DrawableCenterTextView

+ 12 - 0
WeiChat/src/main/res/layout/header_fragment_contact.xml

@@ -27,6 +27,18 @@
             android:textColor="@color/dark_grey"
             android:textColorHint="@color/grey"
             android:textSize="15sp" />
+
+        <ImageView
+            android:id="@+id/voice_search_iv"
+            android:layout_width="30dp"
+            android:layout_height="30dp"
+            android:background="@drawable/btn_yuyin_nor"
+            android:visibility="visible"
+            android:layout_marginRight="25dp"
+            android:layout_alignParentRight="true"
+            android:layout_alignRight="@+id/search_edit"
+            android:layout_marginTop="3dp"
+            />
     </RelativeLayout>
 
     <LinearLayout