PC和Android同屏展示二维码

来源:互联网 发布:lol数据查询网站 编辑:程序博客网 时间:2024/05/29 14:03

需求

在酒店、宾馆等前台,服务员使用PC机上的Web页面进行业务操作,随后需要客户扫描二维码进行信息确认。那么就需要在靠近客户的地方展示二维码,这里我们有一台安卓平板,平时轮播广告,而当客户确认信息时,在屏幕右下方弹出二维码方便顾客扫码。(PC和Android优先采用USB线连接)

 

解决方案

(1)在PC机上使用此服务端,依据Web页面上二维码的URL将图片下载到本机

(2)使用ADB(安卓调试桥)将二维码通过USB线传送到Android机

(3)Android机接收到二维码后,使用ImageView将其显示出来

 

注意事项

(1)ADB需要放置在D:\Software\platform-tools\adb

(2)二维码放置在D:\img,目录需要首先存在

 

代码

#include "stdafx.h"#include <cstdio>#include <UrlMon.h>#include <time.h>#include <conio.h>#pragma comment(lib, "urlmon.lib")using namespace std;char *lpStr;BOOL GetTextFromClipboard(){    if(::OpenClipboard(NULL)) {        HGLOBAL hMem = GetClipboardData(CF_TEXT);        if(NULL != hMem) {            lpStr = (char*)::GlobalLock(hMem);             if(NULL != lpStr) {                ::GlobalUnlock(hMem);            }        }        ::CloseClipboard();        return TRUE;    }    return FALSE;}int main(){system("D:\\Software\\platform-tools\\adb start-service");system("D:\\Software\\platform-tools\\adb remount");system("cls");while(true) {// 测试网址:http://img1.gtimg.com/news/pics/hv1/237/80/2243/145871712.jpgGetTextFromClipboard();printf("URL: %s\n",lpStr);if(lpStr != NULL){char c;double start=clock(),tot;URLDownloadToFile(NULL, lpStr, _T("D:\\img\\1.jpg"), NULL, NULL);printf("\nDo you want to send to Android [Y/N]: ");while((tot=clock()-start) <= 1000 && !kbhit()) {Sleep(1);}if(tot > 1000) {system("cls");continue;}else {scanf("%c",&c);}if(c == 'Y' || c == 'y') {system("D:\\Software\\platform-tools\\adb push D:\\img\\1.jpg system/");}}Sleep(1000);system("cls");}return 0;}