【问题标题】:Connect QR Code Scanner android app to online mySQL database将 QR Code Scanner android 应用程序连接到在线 mySQL 数据库
【发布时间】:2014-10-08 09:44:30
【问题描述】:

使用这个应用程序,我想扫描二维码(我已经在这样做),然后使用在我的 SELECT 语句中扫描二维码返回的值从数据库中的表中获取特定行。

到目前为止我的代码如下:

    public void Scan(View v)
{
    try {

        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); // "PRODUCT_MODE for bar codes

        startActivityForResult(intent, 0);

    } catch (Exception e) {

        Uri marketUri = Uri.parse("market://details?id=com.google.zxing.client.android");
        Intent marketIntent = new Intent(Intent.ACTION_VIEW,marketUri);
        startActivity(marketIntent);

    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {           
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 0) {

        if (resultCode == RESULT_OK) {
            String contents = data.getStringExtra("SCAN_RESULT");//Value retrieved from qr code is stored in this string
        }
        if(resultCode == RESULT_CANCELED){
            //handle cancel
        }
    }
}

【问题讨论】:

    标签: php android mysql database


    【解决方案1】:

    最好的方法是首先让服务器端的东西运行起来。例如通过使用 PHP。我们需要制作一个脚本来获取您的数据输入,并使用它来进行查询以获取您想要的数据。比如像这样:

    <?php
        $data = $_POST['data'];
    
        // $data holds your data from the android app
        // Perform your db query here
    
        $result = ["Resultdata" => $dbresult];
        print json_encode($result);
    ?>
    

    将此代码保存为 process.php 并使其在您的网络服务器上可用。例如:http://www.example.com/process.php

    接下来您要做的就是让您的 Android 代码向您的 php 脚本发出请求。例如使用这个函数:

    public String makePOSTRequest(String url, List<NameValuePair> nameValuePairs) {
        String response = "";
    
        try {
            HttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            response = EntityUtils.toString(httpEntity);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Log.d(LOGTAG, "POST Response >>> " + response);
        return response;
    
    }
    

    在这里找到:sending JSON to server using POST in android app

    您可以使用如下代码:

    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("data", resultCode));
    
    String response = makePOSTRequest(String url, nameValuePairs );
    

    在执行完最后一行之后,来自我们服务器的响应应该在 response 变量中。在谷歌上搜索解码 json 并对数据做任何你想做的事情!希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多