編輯:關於Android編程
之前寫過一個二維碼掃描demo,用的Zxing的框架,點擊下載,後續掃描二維碼中出現一些問題,比如解決壓縮圖片,調整掃描窗口大小等等。後續單位要求做掃描登錄實現,發現難點就是怎麼知道你掃描的是這台電腦,後台必須獲取到(後台技術的問題)然後把這個參數給我,再傳遞到後台,後台判斷登錄即可。這樣自己掃描後直接傳遞個參數就可以實現登錄了。
效果如下:

大概代碼實現:掃描跳轉:
//掃描登錄a
case R.id.tv_more_qr:
if (PventQuickClick.isFastDoubleClick()) {
break;
}
DialogUtils.showCommonPopupWindow(context);
MyApplication.checkLogin(context, new APPCallback() {
@Override
public void appCallback(String userid) {
// TODO Auto-generated method stub
DialogUtils.dismissCommonPopupWindow();
Intent openCameraIntent = new Intent(context,CaptureActivity.class);//Zing框架的類
startActivityForResult(openCameraIntent,0);
}
});
break;
然後掃描後會返回掃描的結果在onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == getActivity().RESULT_OK) {
Bundle bundle = data.getExtras();
String qrResult = bundle.getString(result);
LogUtils.log_e(qrResult, qrResult);
int scan= qrResult.indexOf(+);
//對切取字符串判斷
//登錄
if(scan>0){
String starts = qrResult.substring(0, scan);
String ends = qrResult.substring(scan+1, qrResult.length());
LogUtils.log_e(starts, starts+.......+ends);
if(ends.equals(QrLogin)){
Intent intent = new Intent(context,QrLogin.class);//跳轉到確認登錄界面
intent.putExtra(scanResult, starts);
startActivity(intent);
}
}else if(StringUtils.getUrl(qrResult)){//是html的鏈接直接跳轉浏覽器,比如apk下載等等
Intent intent =new Intent();
intent.setAction(android.intent.action.VIEW);
Uri content_url =Uri.parse(qrResult);
intent.setData(content_url);
startActivity(intent);
}else if(!StringUtils.getUrl(qrResult)){
Toast.makeText(getActivity(), 客官,您掃的找不到呀!!, 0).show();
}
}
}
然後跳轉到確認登錄界面:
點擊判斷傳參:
@Override
protected void baseOnClick(View v) {
switch (v.getId()) {
case R.id.tv_qr_login:
// Toast.makeText(QrLogin.this, 登錄, 0).show();
DialogUtils.showCommonPopupWindow(QrLogin.this);
LinkedHashMap get_checkqrcodelogin = new LinkedHashMap();
get_checkqrcodelogin.put(key, MyApplication.getUserState(loginkey));// android 固定為1
get_checkqrcodelogin.put(sessionid, sessionid);// android 固定為1
HttpManager.GetCheckQrCodeLogin(get_checkqrcodelogin, new NetCallBack() {
@Override
public void callback(String result) {
DialogUtils.dismissCommonPopupWindow();
LogUtils.log_e(GetCheckQrCodeLogin, result);
final CheckQrCodeLogin checkqrcode = JsonUtils.getBeanFromJson(
result, CheckQrCodeLogin.class);
if(checkqrcode.code.equals(1)){
Toast.makeText(QrLogin.this, 登錄成功, 0).show();
finish();
}
}
});
break;
以上所述是小編給大家介紹的Android實現二維碼掃描並登陸網頁的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!
Android數據庫高手秘籍(二)——創建表和LitePal的基本用法
我們學習了一些Android數據庫相關的基礎知識,和幾個頗為有用的SQLite命令,都是直接在命令行操作的。但是我們都知道,數據庫是要和程序結合在一起使用的,
android app版本更新升級
demo的邏輯過程:1.進入程序2.檢查是否有版本更新,如果有則詢問用戶是否更新,否則維持原狀3.檢測當前網絡狀態並且詢問用戶是否進行版本更新,如果是則進行更新,否則維持
預防混水摸魚 Android自定義連接設備名
最近我家的Wi-Fi好像接入很多不明來歷的Android設備,可是進入路由器查看後,都是類似“androidXXXXX”的設備顯示的
Android使用SwipeListView實現類似QQ的滑動刪除效果
QQ的滑動刪除效果很不錯,要實現這種效果,可以使用SwipeListView。1. 下載com.fortysevendeg.swipelistview這個項目(以前Git