当前位置: 首页 > wzjs >正文

昆明云南微网站搭建连云港东海网站建设

昆明云南微网站搭建,连云港东海网站建设,网站有必要使用伪静态么,企业企业网站建Android 热点二维码简单示例 一、前言 Android 原生设置有热点二维码分享功能,有些系统应用也会有这个需求。 下面看看是如何实现的。 本文是一个比较简单的内容。 二、热点二维码生成实现 1、效果 整个应用就一个普通的Activity,显示一个按钮和二维…

Android 热点二维码简单示例

一、前言

Android 原生设置有热点二维码分享功能,有些系统应用也会有这个需求。
下面看看是如何实现的。
本文是一个比较简单的内容。

二、热点二维码生成实现

1、效果

在这里插入图片描述

整个应用就一个普通的Activity,+显示一个按钮和二维码图片;

上面的输入框默认是热点密码的格式,修改输入后可以重新生成;
还添加了点击二维码图片,放大效果,如下图所示:
在这里插入图片描述

一般新的手机使用相机扫描可以识别连接热点,或者wifi设置里面也可以扫描连接热点;

上面这个二维码也可以直接打印使用,

如果你的wifi名称修改成test,密码修改成12345678,别人在附近扫描这个二维码就能连接。

2、主要知识点

(1)热点密码字符串格式
固定格式格式:WIFI:T:WifiType;S:WifiName;P:WifiPassword;;示例:
//加密类型:WPA2,wifi名称:test,wifi密码:12345678
WIFI:T:WPA2;S:test;P:12345678;;//没有密码的wifi:
WIFI:T:nopass;S:test;P:;;
(2)字符串生成二维码图片:
implementation 'com.google.zxing:core:3.4.1'
app build.gradle 导入zxing包就可以调用相关方法生成Bitmap对象放到ImageView显示。//字符串上层二维码Bitmap对象封装方法:public static Bitmap createQrcode(String text) {Log.v(TAG, "createQrcode text = " + text);if (TextUtils.isEmpty(text)) {return null;}try {String contents = new String(text.getBytes("UTF-8"), "ISO-8859-1");MultiFormatWriter formatWriter = new MultiFormatWriter();BitMatrix bitMatrix = formatWriter.encode(contents, BarcodeFormat.QR_CODE, 800, 800);return bitMatrix2Bitmap(bitMatrix);} catch (Exception e) {e.printStackTrace();}return null;}

3、demo代码

两个类:一个Activity类和一个工具类。

(1)MainActivity.java
package com.example.qrcode;import android.app.Dialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity implements View.OnClickListener {EditText et_input;Button btn_create_qrcode;ImageView imageView;String TAG = "MainActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);EdgeToEdge.enable(this);setContentView(R.layout.activity_main);initView();initData();initEvent();}private void initView() {btn_create_qrcode = findViewById(R.id.btn_create_qrcode);et_input = findViewById(R.id.et_input);imageView = findViewById(R.id.iv_qrcode);}private void initData() {//TestString testText = "WIFI:T:WPA2;S:test;P:12345678;;";//wifi名称:test,密码:12345678//String testText = QrcodeUtils.createQrcode(QrcodeUtils.getHotspotQrcodeString(this)); //热点二维码字符串imageView.setImageBitmap(QrcodeUtils.createQrcode(testText));et_input.setText(testText);}private void initEvent() {btn_create_qrcode.setOnClickListener(this);imageView.setOnClickListener(this);}//点击事件@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_create_qrcode:Toast.makeText(this, "创建了二维码", Toast.LENGTH_SHORT).show();String text = et_input.getText().toString();Log.i(TAG, "text: " + text);imageView.setImageBitmap(QrcodeUtils.createQrcode(text));break;case R.id.iv_qrcode:Toast.makeText(this, "点击了二维码", Toast.LENGTH_SHORT).show();View view = getLayoutInflater().inflate(R.layout.dialog_qrcode, null);ImageView imageView = view.findViewById(R.id.iv_qrcode_dialog);imageView.setImageBitmap(QrcodeUtils.createQrcode("WIFI:T:WPA2;S:test;P:12345678;;"));Dialog alertDialog = new AlertDialog.Builder(this).setView(view).create();alertDialog.show();break;}}
}

上面就是一个普通的Activity代码,比较简单易懂。

(2)QrcodeUtils.java
package com.example.qrcode;import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Color;
import android.util.Log;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiManager;
import android.text.TextUtils;public class QrcodeUtils {private static final String TAG = QrcodeUtils.class.getSimpleName();//字符串生成Bitmap对象public static Bitmap createQrcode(String text) {Log.v(TAG, "createQrcode text = " + text);if (TextUtils.isEmpty(text)) {return null;}try {String contents = new String(text.getBytes("UTF-8"), "ISO-8859-1");MultiFormatWriter formatWriter = new MultiFormatWriter();BitMatrix bitMatrix = formatWriter.encode(contents, BarcodeFormat.QR_CODE, 800, 800);return bitMatrix2Bitmap(bitMatrix);} catch (Exception e) {e.printStackTrace();}return null;}private static Bitmap bitMatrix2Bitmap(BitMatrix matrix) {int w = matrix.getWidth();int h = matrix.getHeight();int[] rawData = new int[w * h];for (int i = 0; i < w; i++) {for (int j = 0; j < h; j++) {int color = Color.WHITE;if (matrix.get(i, j)) {color = Color.BLACK;}rawData[i + (j * w)] = color;}}Bitmap bitmap = Bitmap.createBitmap(w, h, Config.RGB_565);bitmap.setPixels(rawData, 0, w, 0, 0, w, h);return bitmap;}//获取热点二维码规则的字符串public static String getHotspotQrcodeString(Context context) {WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);if (wifiManager == null) {return null;}SoftApConfiguration config = wifiManager.getSoftApConfiguration(); //getSoftApConfiguration()方法需要导入framework jar包才能章程编过String wifiName = "";String wifiPassWord = "";wifiName = config.getSsid();wifiPassWord = config.getPassphrase();int securityType = config.getSecurityType();String security = "WPA2";//判断是否设置了热点密码,如果未设置热点密码不用设置密码字符串if (securityType == SoftApConfiguration.SECURITY_TYPE_OPEN) {wifiPassWord = "";security = "nopass";}StringBuilder build = new StringBuilder();build.append("WIFI:T:").append(security).append(";S:").append(wifiName).append(";P:").append(wifiPassWord).append(";;");return build.toString();}}

上面就是一个工具类,主要包含两个工具方法:

一个是字符串创建二维码Bitmap对象;

一个是获取热点二维码的字符串;

(3)热点二维码

上面的demo代码,默认是普通字符串的二维码生成;

如果要换成本机设备的热点二维码的生成,把字符串生成的方法替换成 getHotspotQrcodeString()方法就行;

但是要注意的是热点信息的获取是要系统签名权限的;

所以要热点字符串生成导入系统签名的jks;

并且需要在AndroidManifest中声明uid:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:sharedUserId="android.uid.system">

还有就是要添加权限:

 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

还有就是要导入系统的framework 的jar包:

未导入系统jar包下面的代码会编译错误:
WifiManager.getSoftApConfiguration();

4、扩展一下

其实不仅仅是手机热点的wifi可以用二维码,普通的wifi也是可以使用二维码;

只要把上面的账号和密码替换就行;后面就可以提供二维码给别人进行扫描连接wifi;

所以在现实场景中也可以提前生成对应的wifi名称和密码的二维码,保留使用;

特别是很长的wifi名称或者密码的情况,使用二维码扫描连接更加方便。

5、资源下载

项目代码和apk应用代码下载路径:

https://download.csdn.net/download/wenzhi20102321/90640480

apk可以直接下载安装使用;可以定制自己需要的wifi账号和密码的二维码图片。

三、其他

1、Android 热点二维码简单示例小结

(1)热点二维码固定格式格式:WIFI:T:WifiType;S:WifiName;P:WifiPassword;;
(2)生成二维码图片使用zxing包的相关类
(3)如果应用需要生成设备当时的热点二维码图片,需要系统签名权限命令

手机联系人的二维码呢?也是这样的二维码吗?

其实这些码都不一样,像微信个人二维码,挪车码,支付宝的码,

这些二维码都是包含网址和相关信息的,需要通过具体服务器校验才能跳转到另外界面。

2、之前的二维码和热点介绍

Android二维码图片生成和二维码扫描软件的设计

https://blog.csdn.net/wenzhi20102321/article/details/53316179

Android 热点分享二维码功能简单介绍

https://blog.csdn.net/wenzhi20102321/article/details/142603112

之前没介绍这么具体,并且没有提供到apk和源码。


文章转载自:

http://Cu2Tk9le.kqxwm.cn
http://Wf13XLvO.kqxwm.cn
http://wqVq6Fg8.kqxwm.cn
http://GFPhGEL0.kqxwm.cn
http://EuXD6CwR.kqxwm.cn
http://BUYD7eer.kqxwm.cn
http://nXvDQqnD.kqxwm.cn
http://NpwwqRUj.kqxwm.cn
http://BawIKXOV.kqxwm.cn
http://KnFQ5FeV.kqxwm.cn
http://lQMB9M20.kqxwm.cn
http://azQsZGW5.kqxwm.cn
http://o4YqFOt8.kqxwm.cn
http://izKT58af.kqxwm.cn
http://Pkrn663M.kqxwm.cn
http://nYauc2jp.kqxwm.cn
http://9BOZcJvm.kqxwm.cn
http://UT4rdfVW.kqxwm.cn
http://aHKPpgTd.kqxwm.cn
http://pxdyPKWd.kqxwm.cn
http://4RM2F8Uy.kqxwm.cn
http://W4XVlQpP.kqxwm.cn
http://T8iXuwIq.kqxwm.cn
http://LUDGUIPo.kqxwm.cn
http://7KWrTSTk.kqxwm.cn
http://3vlw0WjL.kqxwm.cn
http://8r04TGe2.kqxwm.cn
http://wBfn54Ql.kqxwm.cn
http://Z77uAQww.kqxwm.cn
http://rBBoPoAE.kqxwm.cn
http://www.dtcms.com/wzjs/672553.html

相关文章:

  • 惠州有做网站的吗网页设计培训教育机构
  • php网站开发实战视频畜牧网站建设
  • 响应式网站做法wordpress上传服务器
  • 小程序免费制作平台有哪些济南seo整站外包
  • 陕西营销型网站建设室内设计行业现状及发展前景
  • 网站后台用什么做服务器有什么做美食的视频网站
  • 嘉定php网站开发培训网站多语言模块
  • 厦门网站开发培训什么平台可以免费推广产品
  • 网站的电子画册怎么做广州网页设计软件培训
  • 太原市手机网站建设深圳深圳网站建设公司
  • 找公司开发网站买电脑wordpress
  • 网站正能量下载免费软件设计软件手机版免费
  • 七牛做网站wordpress爱情主题
  • 网站开发公司需要那些硬件设备html5后台网站模板
  • 专业网站建设的中国风 wordpress主题
  • 建个网站 费用域名解析错误是网络问题还是电脑问题
  • 专业网站建设技术怎样去掉2345网址导航
  • 做网站学的什么专业网站红色模板
  • 哈尔滨做网站的oeminc网站访客抓取
  • 哈尔滨企业网站排名网页设计的代码大全
  • 二手房网站开发长沙做网站哪家公司好
  • 做一百度网站吗佰汇康网站建设
  • 做网站的大小做网站排名优化有用吗
  • 怎么看网站是什么程序做的西安网站建设电话咨询
  • 网站建设首先要做淘宝联盟网站
  • 南阳卧龙区高端网站建设价格网站界面设计应遵循的原则
  • 做南美生意做什么网站好新网站如何做免费推广
  • 网络规划设计师教材整站seo
  • 网站域名后缀区别广东网站建设公司报价
  • 电影网站建设的核心是呼市做网站建设的公司哪家好