簡體   English   中英

使用Qr掃描儀掃描無效的字符串時,我的應用程序崩潰

[英]My app is crashing when scan invalid String by using Qr scanner

我是android的初學者...從qr掃描儀掃描數據...代碼工作正常...假設我掃描了abc之類的字符串...我的應用崩潰了-因為字符較少...如何避免崩潰...如果我在下面的代碼中掃描了一些無效的字符串...有人可以幫助我...

  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    //    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 0) {
        if (resultCode == Activity.RESULT_OK) {
            String contents = data.getStringExtra("SCAN_RESULT");

            String Id = contents.substring(0, 10),
                    password = contents.substring(10, 14);
            //    formatTxt.setText("FORMAT: " + contents);
            //  contentTxt.setText("CONTENT: " + format);

            Toast toast = Toast.makeText(getActivity(), "" + contents, Toast.LENGTH_LONG);
            toast.show();
          setdetails(id.toString(), password.toString());



      } else if (resultCode == Activity.RESULT_CANCELED) {
      // Handle cancel
       Toast toast = Toast.makeText(getActivity(), " Cancelled", Toast.LENGTH_SHORT);

       toast.show();

  }

    } else
        super.onActivityResult(requestCode, resultCode, data);
}

java.lang.RuntimeException:無法傳送結果ResultInfo {who = android:fragment:0,request = 0,result = -1,data = Intent {act = com.google.zxing.client.android.SCAN flg = 0x80000(has活動{com.application}:java.lang.StringIndexOutOfBoundsException:length = 7; regionStart = 0; regionLength = 10

                                                                           at android.app.ActivityThread.deliverResults(ActivityThread.java:3720)
                                                                          Caused by: java.lang.StringIndexOutOfBoundsException: length=7; regionStart=0; regionLength=10

您需要確保字符串長度不小於14(根據您的情況),並且它也不為null,也可以使用以下代碼:

//...some code ...
String contents = data.getStringExtra("SCAN_RESULT");
if(contents!=null && contents.length() >= 14){
    String Id = contents.substring(0, 10),
    password = contents.substring(10, 14);
    //    formatTxt.setText("FORMAT: " + contents);
    //  contentTxt.setText("CONTENT: " + format);

    Toast toast = Toast.makeText(getActivity(), "" + contents, Toast.LENGTH_LONG);
    toast.show();
    setdetails(id.toString(), password.toString());   
}else{
    Toast toast = Toast.makeText(getActivity(), "Invalid Data", Toast.LENGTH_LONG);
    toast.show();
}

您能告訴您錯誤日志中顯示的錯誤是什么,您使用的是哪種掃描儀。

從zxing開始,條形碼掃描儀本身會顯示錯誤對話框“錯誤,無法解釋QR碼”。 被陳列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM