PC和Android同屏展示二维码

需求

在酒店、宾馆等前台,服务员使用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.jpg
		GetTextFromClipboard();
		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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值