无论如何将扫描的QR码结果直接发送到服务器?

时间:2015-09-03 06:06:29

标签: java android qr-code zxing

我开发了一个 Android应用程序来扫描QR码并通过服务器发送它。 在这个应用程序中,我使用数组列表在列表视图中获取多个QR码扫描结果,并通过按钮单击事件将它们发送到服务器。 要求是将所有扫描的QR码结果直接发送到 服务器不使用任何事件,例如按钮点击或类似的东西。 这里我使用zxing QR扫描仪使用意图。以下是获取QR码扫描结果的代码。

       @Override
       public void onActivityResult(int requestCode, int resultCode, Intent intent) {
       if (requestCode == SCANNER_REQUEST_CODE) {
        // Handle scan intent
        if (resultCode == Activity.RESULT_OK) {
            // Handle successful scan
            String contents = intent.getStringExtra("SCAN_RESULT");
            String formatName = intent.getStringExtra("SCAN_RESULT_FORMAT");
            byte[] rawBytes = intent.getByteArrayExtra("SCAN_RESULT_BYTES");
            int intentOrientation = intent.getIntExtra(
                    "SCAN_RESULT_ORIENTATION", Integer.MIN_VALUE);
            Integer orientation = (intentOrientation == Integer.MIN_VALUE) ? null
                    : intentOrientation;
            String errorCorrectionLevel = intent
                    .getStringExtra("SCAN_RESULT_ERROR_CORRECTION_LEVEL");

            QRContent = contents;
            QR_Receivd.setText(QRContent);
            listItems.add(QRContent); //adding scan result to an array list(listItems)

        } else if (resultCode == Activity.RESULT_CANCELED) {
            // Handle cancel
        }

     //On-click method to initiate scan.

     @Override
    public void onClick(View v) {
    if (v.getId() == R.id.btScan) {
    Intent intent = new Intent("com.google.zxing.client.android.SCAN");
    intent.putExtra("SCAN_MODE", "SCAN_MODE");
    startActivityForResult(intent, SCANNER_REQUEST_CODE);
   }  
 }

因此,我不想使用点击事件,而是希望在从扫描仪获取结果后立即将扫描结果直接发送到服务器。     感谢!!!

1 个答案:

答案 0 :(得分:1)

第1部分

首先你应该选择你想要的发送方式。您可以使用官方工具或使用第三方库发送它。我会假设后者。

根据我的方法,您需要在服务器上使用一个PHP文件,该文件负责接收(通过GET或POST)扫描的QR作为参数。

示例电话:

myserver.com/API/addqr?qrcode=XXXXXXXXXX

这个PHP文件必须将其保存到您的数据库中,我想是MYSQL。

第2部分

现在您已经设置了服务器,您应该查看不同的库或官方文档。

USING VOLLEY

Using Loopj's Android Async HTTP petitions (i reccomend this)

我假设您选择方法2.

您所要做的就是发送请愿书:

    if (resultCode == Activity.RESULT_OK) {
            //blah blah blah all the code that decodes and adds it to the listview
AsyncHttpClient client = new AsyncHttpClient();
RequestParams params = new RequestParams();
        params.put("qrcode", "XXXXXXXXXXXXX");
 client.post("myserver.com/API/addqr", params, new JsonHttpResponseHandler() {

        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
          //do something with the response, if there is one.
        }

    });

        }