This article mainly for you in detail the PHP build android client scan can log in QR code, with a certain reference value, interested in small partners can refer to
Using the Zxing Open Source Library with the sweep code feature on GitHub, the three-step process of generating a two-dimensional code image network API via random numbers is done:
1.PHP Web page generated two-dimensional code, the corresponding random number stored in the database;
2.Android Client Scan code, carry username to the location of the random number corresponding;
3. Every once in a while, PHP polls the database through Ajax, determines whether it is empty, and jumps to the Web page without being empty.
Specific code:
1. Generate a QR code image by random number and execute the main page of the polling Operation command
2. Database Connection page
<?php/** * Database Connection File * @author Cenquanyu * @version May 12, 2016 * * /$con = mysql_connect ("localhost", "root", "") or Die (Mysql_error ()); mysql_select_db ("Qr_login");?>
3. The page that performs the polling operation, username is not empty, jumps
<?php/** * @author Cenquanyu * @version May 12, 2016 * Polling operation, query random number in the database in the corresponding location of the username field is not empty * is empty, then returns false, the page does not jump * is not empty, then said The user has made the QR code of the scan code login, the page to jump */require ' mysql_connect.php '; $randnumber = $_get[' Randnumber '); $result = mysql_query (" SELECT * from Login_data where randnumber= ' $randnumber '); $row = Mysql_fetch_array ($result); if ($row [' username ']!= "") echo "true"; else echo "false";? >
4. Customize the API to save the client's username
<?php/** * @author Cenquanyu * @version May 12, 2016 * Custom API for Android client scan login, save the client's username to a QR code corresponding to the random number in the corresponding location in the database. * Parameters: Username,randnumber * No return value */$randnumber = $_get (' Randnumber '); $username = $_get (' username '); Require ' mysql_connect.php '; mysql_query ("Update qr_login set username= ' $username ' where randnumber= ' $randnumber '"); ?>
5. Activity of the Android client to perform scan operation
Package com. Cenquanyu.qrlogin; Import com. Cenquanyu.qrlogin.r;import com.zxing.activity.CaptureActivity; Import Android.app.activity;import Android.content.intent;import Android.graphics.paint.cap;import Android.os.bundle;import Android.view.view;import Android.view.view.onclicklistener;import Android.widget.Button; Import Android.widget.edittext;import android.widget.toast;/** * @author Cenquanyu * @version May 12, 2016 * */public class Mainactivity extends Activity implements Onclicklistener {private Button btnscan; Private EditText Etusername; private static final String Web_url = "http://172.31.19.202/QRLogin/";//change to PC-side address @Override protected void onCreate (Bun Dle savedinstancestate) {super.oncreate (savedinstancestate); Setcontentview (R.layout.activity_main); Btnscan = (Button) Findviewbyid (R.id.btnscan); Btnscan.setonclicklistener (this); Etusername = (EditText) Findviewbyid (r.id.etusername); } @Override public void OnClick (View v) {//Sweep code Operation InteNT Intent = new Intent (this, captureactivity.class); Startactivityforresult (Intent, 0);//Return result} @Override protected void Onactivityresult (int requestcode, int resultcode, Intent data) {Super.onactivityresult (Requestcode, ResultCode, data); if (ResultCode = = ACTIVITY.RESULT_OK) {String randnumber = Data.getextras (). getString ("result");//The client scans the code and returns the scan result, the QR code pair The random number should be taken out of String username = Etusername.gettext (). toString (); String url = web_url + "saveusername.php?randnumber=" + randnumber + "&username=" + username; Httputils.login (URL);//Access URL}}}
6. Network Request Class
Package com. Cenquanyu.qrlogin; Import Java.io.ioexception;import Java.net.httpurlconnection;import Java.net.malformedurlexception;import Java.net.URL; public class httputils{public static void login (final String URL) { new Thread (new Runnable () { @Override
public void Run () { httpurlconnection connection; try { connection = (httpurlconnection) new URL (URL). OpenConnection (); Connection.setrequestmethod ("GET"); Connection.getinputstream (); } catch (Exception e) { e.printstacktrace ();}}} ). Start (); }}
Summary: The above is the entire content of this article, I hope to be able to help you learn.