将QR Code Scanner安卓应用程序连接到在线mySQL数据库

时间:2014-10-08 09:44:30

标签: php android mysql database

使用这个应用程序,我想扫描Qr代码(我已经在做),然后使用扫描我的SELECT语句中的QR代码返回的值从数据库中的表中获取某一行。

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

    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
        }
    }
}

1 个答案:

答案 0 :(得分:0)

最好的方法是首先让服务器端运行。例如,通过使用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 );

执行最后一行后,我们服务器的响应应该在响应变量中。在谷歌搜索解码json并用数据做任何你想做的事情!我希望这可以帮助你!