TallyPutInMainActivity.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743
  1. package com.fxy.putIn;
  2. import android.annotation.SuppressLint;
  3. import android.app.AlertDialog;
  4. import android.content.BroadcastReceiver;
  5. import android.content.Context;
  6. import android.content.DialogInterface;
  7. import android.content.Intent;
  8. import android.content.IntentFilter;
  9. import android.os.Build;
  10. import android.os.Bundle;
  11. import android.os.Handler;
  12. import android.os.Message;
  13. import android.support.v7.widget.RecyclerView;
  14. import android.text.Editable;
  15. import android.text.TextWatcher;
  16. import android.view.KeyEvent;
  17. import android.view.View;
  18. import android.view.inputmethod.EditorInfo;
  19. import android.widget.EditText;
  20. import android.widget.ImageButton;
  21. import android.widget.LinearLayout;
  22. import android.widget.TextView;
  23. import androidx.annotation.RequiresApi;
  24. import com.elvishew.xlog.XLog;
  25. import com.fxy.R;
  26. import com.fxy.baselibrary.base.BaseActivity;
  27. import com.fxy.baselibrary.bean.BaseEventBusBean;
  28. import com.fxy.baselibrary.interfaces.OnRxScanerListener;
  29. import com.fxy.baselibrary.util.JsonUtil;
  30. import com.fxy.bean.ActionBean;
  31. import com.fxy.bean.ScanBean;
  32. import com.fxy.common.AsyncPictureSelector;
  33. import com.fxy.common.AsyncPictureUpload;
  34. import com.fxy.constant.BaseConfig;
  35. import com.fxy.constant.EventCode;
  36. import com.fxy.net.MyDialogCallback;
  37. import com.fxy.net.Urls;
  38. import com.fxy.putIn.bean.TallyPutInBean;
  39. import com.fxy.utils.UploadUtils;
  40. import com.google.gson.Gson;
  41. import com.google.zxing.Result;
  42. import com.luck.picture.lib.config.PictureConfig;
  43. import com.lzy.okgo.OkGo;
  44. import com.lzy.okgo.model.Response;
  45. import java.util.ArrayList;
  46. import java.util.HashMap;
  47. import java.util.List;
  48. import java.util.Map;
  49. import butterknife.BindView;
  50. import butterknife.ButterKnife;
  51. import butterknife.OnClick;
  52. import butterknife.Unbinder;
  53. import sto.android.app.StoJNI;
  54. import sto.android.app.StoPdaKeyEvent;
  55. import sto.android.app.StoTongJNI;
  56. public class TallyPutInMainActivity extends BaseActivity implements StoJNI.ScanCallBack{
  57. /**
  58. * 列表适配器
  59. */
  60. Context mContext = this;
  61. @BindView(R.id.et_order_number)
  62. EditText etOrderNumber;
  63. @BindView(R.id.tv_qty)
  64. TextView tvQty;
  65. @BindView(R.id.tv_await_num)
  66. TextView tvAwaitNum;
  67. @BindView(R.id.ll_label_picture)
  68. LinearLayout llLabelPicture;
  69. @BindView(R.id.ll_order_number)
  70. LinearLayout llOrderNumber;
  71. //
  72. //扫码扫码动作
  73. private ScanBean scanBean;
  74. private ArrayList<String> baseImgList = new ArrayList<>();
  75. protected String action;
  76. private HashMap<String, AsyncPictureSelector> mapPictureSelector = new HashMap<>();
  77. private boolean isRequiredShow = false;
  78. private String currentPictureType= "label_img";
  79. private Unbinder unbinder;
  80. private AsyncPictureUpload asyncPictureUpload;
  81. private TallyPutInBean tallyPutInBean;
  82. //是否重新打开
  83. private int isOpen=0;
  84. //强制更改
  85. private int isChange=0;
  86. @Override
  87. public int getContentViewResId() {
  88. return R.layout.activity_fxy_tray_putin;
  89. }
  90. @Override
  91. public boolean showToolBar() {
  92. return true;
  93. }
  94. @Override
  95. public boolean openEventBus() {
  96. return true;
  97. }
  98. @Override
  99. protected void getBundleExtras(Bundle bundle) {
  100. //XLog.e("接收数据解析:",bundle);
  101. }
  102. //finish的返回监听
  103. //这里的requestCode参数,就是上面设置的 1 ,当跳转的页面返回的时候,通过这个加以判断
  104. //resultCode ,这个参数是在跳转的页面里面规定的,它也是一个int类型的标志
  105. //第三个参数包含了返回的值
  106. //如果不需要所跳转的页面返回值,也就不需要这个方法了
  107. @Override
  108. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  109. super.onActivityResult(requestCode, resultCode, data);
  110. if (resultCode == RESULT_OK) {
  111. // 图片选择结果回调
  112. if (requestCode == PictureConfig.CHOOSE_REQUEST) {
  113. if (mapPictureSelector.containsKey(currentPictureType)){
  114. mapPictureSelector.get(currentPictureType).getSelectImg(data);
  115. }
  116. totalAwaitNum();
  117. // asyncPictureUpload.setStartUpload();
  118. submitLabelImg();
  119. }
  120. }
  121. }
  122. /**
  123. * EventBus接收信息的方法,开启后才会调用(非粘性事件)
  124. *
  125. * @param event
  126. */
  127. @Override
  128. protected void EventBean(BaseEventBusBean event) {
  129. // XLog.e("----------接收返回--------------");
  130. // XLog.e("接收返回:"+event.getEventCode());
  131. assert event != null;
  132. switch (event.getEventCode()){
  133. case EventCode.file_upload_lister:
  134. totalAwaitNum();
  135. break;
  136. }
  137. }
  138. @Override
  139. public boolean isPlayMusic() {
  140. return true;
  141. }
  142. @Override
  143. protected void initView() {
  144. unbinder = ButterKnife.bind(this);
  145. setTitleName("快递打板");
  146. asyncPictureUpload = new AsyncPictureUpload(this);
  147. initEdit();
  148. iniData();
  149. RecyclerView rvLabelShowImg = (RecyclerView)llLabelPicture.findViewById(R.id.rv_show_img);
  150. mapPictureSelector.put("label_img",setItemPicture("label_img",rvLabelShowImg,9999));
  151. totalAwaitNum();
  152. }
  153. /**
  154. * 设置多个上传文件
  155. * @param uploadType String
  156. * @param showImg RecyclerView
  157. */
  158. private AsyncPictureSelector setItemPicture(String uploadType,RecyclerView showImg,int num){
  159. String notifyUrl = Urls.getServiceAddress(this) + Urls.FXY_DETECTION_PUTIN;
  160. AsyncPictureSelector pictureUpload = new AsyncPictureSelector(TallyPutInMainActivity.this,showImg,"tally",uploadType,notifyUrl,false);
  161. pictureUpload.setUploadType(uploadType);
  162. pictureUpload.setCompress(true,100,100);
  163. pictureUpload.setOnlyCamera(true);
  164. pictureUpload.setMaxSelectNum(num);
  165. return pictureUpload;
  166. }
  167. @Override
  168. public boolean dispatchKeyEvent(KeyEvent event) {
  169. //XLog.e("event:"+event.getKeyCode());
  170. if ((event.getKeyCode()==KeyEvent.KEYCODE_DPAD_CENTER || event.getKeyCode()==KeyEvent.KEYCODE_ENTER ) && event.getAction() == KeyEvent.ACTION_DOWN){
  171. //按确定键
  172. getPallet();
  173. }
  174. return super.dispatchKeyEvent(event);
  175. }
  176. //监听按键
  177. public boolean onKeyDown(int keyCode, KeyEvent event) {
  178. XLog.e("监听按键:"+keyCode);XLog.e(event);
  179. if (scanBean.getIsBroadcast()==0 && StoTongJNI.getIns(mContext).getEventFuction(keyCode) == StoPdaKeyEvent.KEYCODE_SCAN
  180. && event.getRepeatCount() == 0) {
  181. if (StoTongJNI.getIns(mContext).GetScannerIsScanning()) {
  182. //
  183. } else {
  184. StoTongJNI.getIns(mContext).SetScannerStart();
  185. }
  186. }
  187. return super.onKeyDown(keyCode, event);
  188. }
  189. @SuppressLint("HandlerLeak")
  190. Handler scanHandler = new Handler() {
  191. @Override
  192. public void handleMessage(Message msg) {
  193. // TODO Auto-generated method stub
  194. if (msg.obj != null) {
  195. String scanResult = msg.obj.toString().trim();
  196. if (!scanResult.isEmpty()){
  197. setScanResult(scanResult);
  198. }
  199. }
  200. }
  201. };
  202. @Override
  203. public void onScanResults(String str) {
  204. Message msg = new Message();
  205. msg.obj = str;
  206. scanHandler.sendMessage(msg);
  207. }
  208. @Override
  209. public void onScanResults(String str, int type) {
  210. }
  211. /**
  212. * 定义广播接受
  213. */
  214. BroadcastReceiver mReceiver = new BroadcastReceiver() {
  215. @Override
  216. public void onReceive(Context context, Intent intent) {
  217. String scanResult = intent.getStringExtra(scanBean.getDataName());
  218. if (scanResult==null){return; }
  219. String scanStatus = "";
  220. if (!scanBean.getStatusName().isEmpty()){
  221. scanStatus = intent.getStringExtra(scanBean.getStatusName());
  222. }else{
  223. scanStatus = scanResult.isEmpty()? "" : "ok"; //有值 默认是扫码成功;
  224. }
  225. //新大陆(MT65,MT90) 需要手动关闭
  226. if (!scanBean.getActionStop().isEmpty()){
  227. Intent stopIntent = new Intent(scanBean.getActionStop());
  228. mContext.sendBroadcast(stopIntent);
  229. }
  230. if ("ok".equals(scanStatus)){
  231. setScanResult(scanResult);
  232. }else{
  233. showErrorToast(getString(R.string.scan_failed));
  234. }
  235. }
  236. };
  237. /**
  238. * 注册广播
  239. */
  240. private void initReceiver(){
  241. try {
  242. String scanStr = getScanSetting();
  243. scanBean = JsonUtil.getObject(scanStr, ScanBean.class);
  244. Integer is_broadcast = scanBean.getIsBroadcast();//是否广播
  245. if (is_broadcast ==1){
  246. IntentFilter mFilter = new IntentFilter(scanBean.getAction());
  247. this.registerReceiver(mReceiver, mFilter);
  248. }else{
  249. //不广播进行处理 jni模式
  250. String pdaBrand = StoTongJNI.getmPdaBrand();
  251. if (!pdaBrand.isEmpty()){
  252. StoTongJNI.getIns(this).setmScanCB(this);
  253. StoTongJNI.getIns(this).SetScannerOn();
  254. }
  255. }
  256. }catch (Exception e) {
  257. showErrorToast("获取扫码配置失败"+e.getMessage());
  258. XLog.e("获取扫码配置失败:" + e.getMessage());
  259. }
  260. }
  261. private void initEdit() {
  262. List<EditText> list = new ArrayList<>();
  263. list.add(etOrderNumber);
  264. unifyEdit(list);
  265. }
  266. private void iniData(){
  267. baseImgList.add("label_img");
  268. }
  269. //getAwaitNum
  270. private void totalAwaitNum(){
  271. int awaitNum = UploadUtils.getAwaitNum(mRealm,getClass().getSimpleName());
  272. tvAwaitNum.setText(String.valueOf(awaitNum));
  273. }
  274. //统一按钮回调
  275. @SuppressLint("NonConstantResourceId")
  276. public void callbackEditor(View v){
  277. switch (v.getId()) {
  278. case R.id.et_order_number:
  279. getPallet();
  280. break;
  281. default:
  282. }
  283. }
  284. /**
  285. * 统一设置Edit监听
  286. * @param list
  287. */
  288. public void unifyEdit(List<EditText> list){
  289. for (int i=0;i<list.size();i++){
  290. EditText editText = list.get(i);
  291. LinearLayout linearLayout = (LinearLayout)editText.getParent();
  292. ImageButton imageButton = getChildImageButton(linearLayout);
  293. //监听按确定
  294. editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  295. @Override
  296. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  297. //XLog.e("actionId:"+actionId);
  298. if (actionId == EditorInfo.IME_ACTION_SEND || actionId == EditorInfo.IME_ACTION_DONE ) {
  299. if (v.getText().toString().trim().isEmpty()) {
  300. setEditTextFocused(v,true);
  301. showWarningToast(v.getHint().toString());
  302. return false;
  303. }else{
  304. setEditTextNormal(v,true);
  305. }
  306. callbackEditor(v);
  307. return false;
  308. }
  309. return false;
  310. }
  311. });
  312. editText.addTextChangedListener(new TextWatcher() {
  313. public void onTextChanged(CharSequence s, int start, int before, int count) {
  314. EditText currentEditText = null;
  315. ImageButton currentImage = null;
  316. //获取焦点的view对象
  317. View view=getWindow().getDecorView().findFocus();
  318. //如果是EditText
  319. if(view instanceof EditText){
  320. currentEditText = (EditText) view;
  321. currentImage = getChildImageButton((LinearLayout)currentEditText.getParent());
  322. }
  323. if (s.length() > 0 ) {
  324. if (currentImage !=null ){
  325. currentImage.setVisibility(View.VISIBLE);
  326. }
  327. if (currentEditText!=null){
  328. setEditTextNormal(currentEditText,true);
  329. }
  330. } else {
  331. if (currentImage !=null ){
  332. currentImage.setVisibility(View.INVISIBLE);
  333. }
  334. if (currentEditText!=null && isRequiredShow){
  335. setEditTextFocused(currentEditText,true);
  336. }
  337. }
  338. }
  339. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  340. }
  341. public void afterTextChanged(Editable s) {
  342. }
  343. });
  344. if (imageButton !=null ){
  345. unifyClearEdit(imageButton);
  346. }
  347. }
  348. }
  349. private OnRxScanerListener mScanerListener = new OnRxScanerListener() {
  350. @Override
  351. public void onSuccess(String type, Result result) {
  352. String scanResult = result.getText();
  353. switch (type){
  354. case BaseConfig.COMMON_SCANNER_ONLY:
  355. setScanResult(scanResult);
  356. break;
  357. }
  358. }
  359. @Override
  360. public void onFail(String type, String message) {
  361. }
  362. };
  363. //把扫描结果赋值
  364. private void setScanResult(String scanResult){
  365. //获取焦点的view对象
  366. View view=getWindow().getDecorView().findFocus();
  367. //如果是EditText
  368. if(view instanceof EditText)
  369. {
  370. ((EditText) view).setText(scanResult);
  371. showSuccessToast("扫描成功");
  372. callbackEditor(view);
  373. }
  374. }
  375. //检查是否存在上传
  376. private void checkIsUpload(){
  377. }
  378. //获取跟踪单号
  379. private void getPallet(){
  380. checkIsUpload();
  381. if (etOrderNumber.getText().toString().isEmpty()){
  382. showErrorToast(etOrderNumber.getHint().toString());
  383. return;
  384. }
  385. Map<String,Object> math = new HashMap<>();
  386. math.put("pallet_code",etOrderNumber.getText().toString().trim());
  387. if (isOpen>0){
  388. math.put("is_open",isOpen);
  389. }
  390. String mathJson = (new Gson()).toJson(math);
  391. OkGo.<String>post(Urls.getServiceAddress(this) + Urls.FXY_CHECK_PALLET).upJson(mathJson)
  392. .execute(new MyDialogCallback(this, true, true) {
  393. @Override
  394. public void onSuccess(Response<String> response) {
  395. super.onSuccess(response);
  396. try {
  397. ActionBean bean = JsonUtil.getObject(response.body(), ActionBean.class);
  398. if (bean.data!=null && !bean.data.isEmpty() && !bean.data.equals("[]")){
  399. tallyPutInBean = JsonUtil.jsonString2Bean(bean.data,TallyPutInBean.class);
  400. }else{
  401. tallyPutInBean = new TallyPutInBean();
  402. }
  403. String voiceName = tallyPutInBean.getVoiceName();
  404. if (tallyPutInBean.getIsOpen() == 1) {
  405. new AlertDialog.Builder(mContext)
  406. .setTitle(R.string.dl_hint)
  407. .setMessage(bean.msg)
  408. .setNegativeButton(R.string.str_submit, new DialogInterface.OnClickListener() {
  409. @RequiresApi(api = Build.VERSION_CODES.KITKAT)
  410. @Override
  411. public void onClick(DialogInterface dialogInterface, int i) {
  412. isOpen = 1;
  413. getPallet();
  414. }
  415. }).setPositiveButton(R.string.str_cancel, new DialogInterface.OnClickListener() {
  416. @Override
  417. public void onClick(DialogInterface dialogInterface, int i) {
  418. //取消不做操作
  419. isOpen = 0;
  420. }
  421. }).show();
  422. }
  423. tvQty.setText(String.valueOf(tallyPutInBean.getQty()));
  424. if(bean.code == 1){
  425. showSuccessToast(bean.msg,voiceName);
  426. mapPictureSelector.get(currentPictureType).authCamera();
  427. }else{
  428. showWarningToast(bean.msg,voiceName);
  429. }
  430. }catch (Exception e) {
  431. e.printStackTrace();
  432. XLog.e("确认错误",e.getMessage());
  433. }
  434. }
  435. });
  436. }
  437. //提交面单信息
  438. private void submitLabelImg(){
  439. checkIsUpload();
  440. if (etOrderNumber.getText().toString().isEmpty()){
  441. showErrorToast(etOrderNumber.getHint().toString());
  442. return;
  443. }
  444. Gson gson = new Gson();
  445. Map<String,Object> math = new HashMap<>();
  446. math.put("pallet_code",tallyPutInBean.getPalletCode().trim());
  447. //面单
  448. List<String> stringList = mapPictureSelector.get("label_img").getOssPhotoList();
  449. if (stringList.size()==0){
  450. showWarningToast("面单照片不能为空");
  451. return;
  452. }
  453. math.put("label_img_tag",mapPictureSelector.get("label_img").getUniqueTag());
  454. math.put("label_img",gson.toJson(stringList));
  455. if (isChange>0){
  456. math.put("is_change",isChange);
  457. }
  458. if (isOpen>0){
  459. math.put("is_open",isOpen);
  460. }
  461. OkGo.<String>post(Urls.getServiceAddress(this) + Urls.FXY_PICTURE_INBOUND).upJson(gson.toJson(math))
  462. .execute(new MyDialogCallback(this, true, true) {
  463. @Override
  464. public void onSuccess(Response<String> response) {
  465. super.onSuccess(response);
  466. try {
  467. ActionBean bean = JsonUtil.getObject(response.body(), ActionBean.class);
  468. if (bean.data!=null && !bean.data.isEmpty() && !bean.data.equals("[]")){
  469. tallyPutInBean = JsonUtil.jsonString2Bean(bean.data,TallyPutInBean.class);
  470. }
  471. tvQty.setText(String.valueOf(tallyPutInBean.getQty()));
  472. String voiceName = tallyPutInBean.getVoiceName();
  473. if(bean.code == 1){
  474. showSuccessToast(bean.msg,voiceName);
  475. for (int i=0;i<baseImgList.size();i++){
  476. if (mapPictureSelector.containsKey(baseImgList.get(i))){
  477. mapPictureSelector.get(baseImgList.get(i)).emptyRemake();
  478. }
  479. }
  480. mapPictureSelector.get(currentPictureType).authCamera();
  481. }else{
  482. if (tallyPutInBean.getIsChange() ==1){
  483. new AlertDialog.Builder(mContext)
  484. .setTitle(R.string.dl_hint)
  485. .setMessage(bean.msg)
  486. .setNegativeButton(R.string.str_submit, new DialogInterface.OnClickListener() {
  487. @RequiresApi(api = Build.VERSION_CODES.KITKAT)
  488. @Override
  489. public void onClick(DialogInterface dialogInterface, int i) {
  490. isChange = 1;
  491. submitLabelImg();
  492. }
  493. }).setPositiveButton(R.string.str_cancel, new DialogInterface.OnClickListener() {
  494. @Override
  495. public void onClick(DialogInterface dialogInterface, int i) {
  496. //取消不做操作
  497. isChange = 0;
  498. }
  499. }).show();
  500. }else{
  501. showWarningToast(bean.msg,voiceName);
  502. }
  503. }
  504. }catch (Exception e) {
  505. e.printStackTrace();
  506. XLog.e("错误",e.getMessage());
  507. }
  508. }
  509. });
  510. }
  511. private void closePallet(){
  512. if (etOrderNumber.getText().toString().isEmpty()){
  513. showErrorToast(etOrderNumber.getHint().toString());
  514. return;
  515. }
  516. Map<String,Object> math = new HashMap<>();
  517. math.put("pallet_code",etOrderNumber.getText().toString().trim());
  518. String mathJson = (new Gson()).toJson(math);
  519. OkGo.<String>post(Urls.getServiceAddress(this) + Urls.FXY_CLOSE_PALLET).upJson(mathJson)
  520. .execute(new MyDialogCallback(this, true, true) {
  521. @Override
  522. public void onSuccess(Response<String> response) {
  523. super.onSuccess(response);
  524. try {
  525. ActionBean bean = JsonUtil.getObject(response.body(), ActionBean.class);
  526. if(bean.code == 1){
  527. showSuccessToast(bean.msg);
  528. etOrderNumber.setText("");
  529. etOrderNumber.setEnabled(true);
  530. for (int i=0;i<baseImgList.size();i++){
  531. if (mapPictureSelector.containsKey(baseImgList.get(i))){
  532. mapPictureSelector.get(baseImgList.get(i)).emptyRemake();
  533. }
  534. }
  535. etOrderNumber.requestFocus();
  536. tvQty.setText("0");
  537. isOpen = 0;
  538. isChange = 0;
  539. }else{
  540. showWarningToast(bean.msg);
  541. }
  542. }catch (Exception e) {
  543. e.printStackTrace();
  544. XLog.e("关闭托盘错误",e.getMessage());
  545. }
  546. }
  547. });
  548. }
  549. //sIsGoodinfoMatch,sIsBattery,sIsMagnetic,sIsWood,sIsExtra,sIsOther
  550. @OnClick({R.id.btn_confirm})
  551. public void onViewClicked(View view) {
  552. Bundle bundle = new Bundle();
  553. switch (view.getId()) {
  554. case R.id.btn_confirm:
  555. closePallet();
  556. break;
  557. default:
  558. break;
  559. }
  560. }
  561. @Override
  562. protected void onDestroy() {
  563. unbinder.unbind();
  564. super.onDestroy();
  565. asyncPictureUpload.removeHandler();
  566. }
  567. @Override
  568. protected void onResume() {
  569. super.onResume();
  570. initReceiver();
  571. }
  572. @Override
  573. protected void onPause() {
  574. super.onPause();
  575. //销毁在onResume()方法中的广播
  576. try {
  577. //停止扫描
  578. Integer is_broadcast = scanBean.getIsBroadcast();//是否广播
  579. if (is_broadcast==0){
  580. StoTongJNI.getIns(mContext).SetScannerStop();
  581. StoTongJNI.getIns(mContext).SetScannerOff();
  582. }else{
  583. unregisterReceiver(mReceiver);
  584. }
  585. }catch (Exception e){
  586. XLog.e("销毁广播失败:",e.getMessage());
  587. }
  588. }
  589. }