2016-02-05 48 views
0

我跟着this读取QR码......QR码阅读器扫描两次,如何使它作为一个成功的扫描只

那边我已经添加了一个扫描按钮,开始QR读者活动......和我在另一个页面上显示结果...

现在我将这些结果传递给JOSN中的服务器......以便服务器将响应,如果它的扫描第一次更新成功.. 并删除成功..喜欢那..

但是,当我在尝试我在我的数据库中同时获得两个.. 这里一个压脚提升首先扫描它应该重定向到json的页面,并显示服务器状态...

,但它仍然运行,我得到两个更新,并且在时间删除.. &每次得到的结果删除成功..

我我当我强迫移动设备的形式共同的QR显示服务器响应并显示始终删除成功之前扫描QR码路过结果后,这样做..

Qrdata.this.finish(); 
Intent i = new Intent(this, json.class); 
i.putExtra("qrdata", sdata); 
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
startActivity(i); 

但其扫描两次......

德在此刻我正在更新成功..

我想一个成功的扫描后停止qrscan ..

任何一个可以建议我,我会更新我的代码,如果需要的其他资料...在这QRCode的..

Upate:

这是在服务器端..

public class Sdata extends Activity { 
    private static String urlString; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.data); 

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); 

       final TextView tv = (TextView) findViewById(R.id.tv); 

      String rdata; 
      Intent i = getIntent(); 
      rdata = i.getStringExtra("sdata"); 

        tv.setText(""); 
        urlString = "http://"+rdata; 
        new ProcessJSON().execute(urlString); 

      System.out.println("****url****"+urlString); 

     } 

    } 

    private class ProcessJSON extends AsyncTask<String, Void, String>{ 
     protected String doInBackground(String... strings){ 
      String stream=null; 
      String urlString = strings[0]; 

      HDH hh = new HDH(); 
      stream = hh.GetHTTPData(urlString); 
      return stream; 
     } 

     protected void onPostExecute(String stream) { 
      TextView tv = (TextView) findViewById(R.id.tv); 

      if (stream != null) { 
       try { 
        JSONObject key = new JSONObject(stream); 
        JSONObject response = key.getJSONObject("response"); 
        String status = response.getString("status"); 
        tv.setText(tv.getText() + "\t"+ status + "\n"); 

       } 
       catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 

     } 
    } 
    @Override 
    public void onBackPressed() { 
     moveTaskToBack(false); 
     Toast.makeText(this, "Please wait for a While.. Don't Go back .!", Toast.LENGTH_SHORT).show(); 

    } 

} 

任何一个可以告诉我,我需要添加

回答

0

您可以通过像布尔变量第一校验标志为

boolean scan = true; 
if(scan) { 
    // ...scan qr.. 
} 

维护它,当你得到第一次作出这样的布尔值false。

+0

我的代码,我需要添加此...我的意思是在按钮或QR读取或服务器端 –

+0

之前,请求服务器。 –

+0

好吧,先生我正在传递QR码的意图我会更新我的服务器端,..请更新你的答案 –