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

Android:获取MAC < 安卓系统11 <= 获取UUID

1.核心代码 

主要的UseMac.java

import android.annotation.SuppressLint;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Environment;
import android.util.Log;import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.net.NetworkInterface;
import java.util.Collections;
import java.util.List;
import java.util.UUID;public class UseMac {public static final String main(Context context) {//R对应安卓11  -->30if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {//这里做你想做的事String uuid = "";try {uuid = readKey();} catch (IOException e) {e.printStackTrace();}return uuid;}else {return TVMac(context);}}private static String TVMac(Context context){int networkType;final ConnectivityManager connectivityManager= (ConnectivityManager)context.getSystemService(context.CONNECTIVITY_SERVICE);@SuppressLint("MissingPermission") final NetworkInfo networkInfo=connectivityManager.getActiveNetworkInfo();networkType=networkInfo.getType();Log.d("获取当前数据", "network type:"+networkType);if(networkType == ConnectivityManager.TYPE_WIFI){return getMac_wlan0();}else if((networkType == ConnectivityManager.TYPE_ETHERNET)){return getMac_eth0();}else{return getMac_wlan0();}}//====11-----Gpublic static String Android11Mac(Context context){// 使用WifiManager获取Mac地址WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);WifiInfo wifiInfo = null;if (wifiManager != null) {wifiInfo = wifiManager.getConnectionInfo();}// 获取Mac地址String macAddress = null;if (wifiInfo != null) {macAddress = wifiInfo.getMacAddress();Log.e("macAddress","====>>"+macAddress);}return macAddress;}public static String getUUID() {return UUID.randomUUID().toString().replaceAll("-", "");}private static String uuidfileName = "myuuid.txt";public static void saveBitmap() throws IOException {// 创建目录//获取内部存储状态String state = Environment.getExternalStorageState();//如果状态不是mounted,无法读写if (!state.equals(Environment.MEDIA_MOUNTED)) {return;}String sdCardDir = Environment.getExternalStorageDirectory().getAbsolutePath();File appDir = new File(sdCardDir, "CaChe");if (!appDir.exists()) {appDir.mkdir();}String fileName = uuidfileName;//这里是创建一个TXT文件保存我们的UUIDFile file = new File(appDir, fileName);if (!file.exists()) {file.createNewFile();}//保存android唯一表示符try {FileWriter fw = new FileWriter(file);fw.write(getUUID());fw.flush();fw.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public static String readKey() throws IOException {// 创建目录//获取内部存储状态String state = Environment.getExternalStorageState();//如果状态不是mounted,无法读写if (!state.equals(Environment.MEDIA_MOUNTED)) {return null;}String sdCardDir = Environment.getExternalStorageDirectory().getAbsolutePath();File appDir = new File(sdCardDir, "CaChe");if (!appDir.exists()) {appDir.mkdir();}String fileName = uuidfileName;//这里是进行读取我们保存文件的名称File file = new File(appDir, fileName);if (!file.exists()) {file.createNewFile();}BufferedReader reader = null;StringBuilder content=null;try {FileReader fr = new FileReader(file);content= new StringBuilder();reader = new BufferedReader(fr);String line;while ((line= reader.readLine())!=null){content.append(line);}} catch (Exception e) {e.printStackTrace();}finally {if (reader!=null){try {reader.close();}catch (IOException e){e.printStackTrace();}}}return content.toString();}public static final String getNetName(Context context) {int networkType;final ConnectivityManager connectivityManager= (ConnectivityManager)context.getSystemService(context.CONNECTIVITY_SERVICE);@SuppressLint("MissingPermission") final NetworkInfo networkInfo=connectivityManager.getActiveNetworkInfo();networkType=networkInfo.getType();Log.d("获取当前数据", "network type:"+networkType);if(networkType == ConnectivityManager.TYPE_WIFI){return "WIFI";}else if((networkType == ConnectivityManager.TYPE_ETHERNET)){return "有线";}else{return "WIFI";}}//获取无线mac地址public static final String getMac_wlan0() {try {List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());for (NetworkInterface nif : all) {if (!"wlan0".equalsIgnoreCase(nif.getName())) {continue;}byte[] macBytes = nif.getHardwareAddress();if (macBytes == null || macBytes.length == 0) {continue;}StringBuilder result = new StringBuilder();for (byte b : macBytes) {result.append(String.format("%02X", b));}String s1 = result.toString().toUpperCase().replaceAll ("(.{2})", "$1:");//加入:return s1.substring(0,s1.length()-1);}} catch (Exception x) {x.printStackTrace();}return "";}//获取有线mac地址public static String getMac_eth0() {try {List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());for (NetworkInterface nif : all) {if (!"eth0".equalsIgnoreCase(nif.getName())) {continue;}byte[] macBytes = nif.getHardwareAddress();if (macBytes == null || macBytes.length == 0) {continue;}StringBuilder result = new StringBuilder();for (byte b : macBytes) {result.append(String.format("%02X", b));}String s1 = result.toString().toUpperCase().replaceAll ("(.{2})", "$1:");//加入:return s1.substring(0,s1.length()-1);}} catch (Exception x) {x.printStackTrace();}return "";}}

下面说一下使用

2.获取mac

2.1.修改

主要是在 下面这个方法注释掉的是获取mac的,适合安卓11以下

    public static final String main(Context context) {return TVMac(context);}

2.2.使用

把main方法的uuid部分注释掉

UseMac.main(activity)

3.获取uuid

这边有一个类,会主动给你申请权限

import android.app.Activity;
import android.content.pm.PackageManager;
import android.util.Log;import androidx.core.app.ActivityCompat;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;public class FileOper {private static final int REQUEST_EXTERNAL_STORAGE = 1;private static String[] PERMISSIONS_STORAGE = {"android.permission.READ_EXTERNAL_STORAGE", "android.permission.WRITE_EXTERNAL_STORAGE"};private Activity activity;public FileOper(Activity activity) {this.activity =activity;try {//检测是否有写的权限int permission = ActivityCompat.checkSelfPermission(activity, "android.permission.WRITE_EXTERNAL_STORAGE");if (permission != PackageManager.PERMISSION_GRANTED) {// 没有写的权限,去申请写的权限,会弹出对话框ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);}} catch (Exception e) {e.printStackTrace();}}//flie:要删除的文件夹的所在位置public void deleteFile(File file) {Log.e("TestFile","清除一下视频缓存");if (file.isDirectory()) {File[] files = file.listFiles();for (int i = 0; i < files.length; i++) {File f = files[i];deleteFile(f);}// file.delete();//如要保留文件夹,只删除文件,请注释这行} else if (file.exists()) {file.delete();}}public void writeData(String url, String name, String content) {String filePath = url;String fileName = name + ".txt";writeTxtToFile(content, filePath, fileName);}// 将字符串写入到文本文件中private void writeTxtToFile(String strcontent, String filePath, String fileName) {//生成文件夹之后,再生成文件,不然会出错makeFilePath(filePath, fileName);String strFilePath = filePath + fileName;// 每次写入时,都换行写String strContent = strcontent + "\r\n";try {File file = new File(strFilePath);if (!file.exists()) {Log.d("TestFile", "Create the file:" + strFilePath);file.getParentFile().mkdirs();file.createNewFile();}RandomAccessFile raf = new RandomAccessFile(file, "rwd");raf.seek(file.length());raf.write(strContent.getBytes());raf.close();} catch (Exception e) {Log.e("TestFile", "Error on write File:" + e);}}//生成文件private File makeFilePath(String filePath, String fileName) {File file = null;makeRootDirectory(filePath);try {file = new File(filePath + fileName);if (!file.exists()) {file.createNewFile();}} catch (Exception e) {e.printStackTrace();}return file;}//判断文件是否存在public boolean fileIsExists(String strFile) {try {File f = new File(strFile);if (!f.exists()) {return false;}} catch (Exception e) {return false;}return true;}//生成文件夹public void makeRootDirectory(String filePath) {File file = null;try {file = new File(filePath);//不存在就新建if (!file.exists()) {file.mkdir();}} catch (Exception e) {Log.i("error:", e + "");}}//删除指定路径的文件public boolean deleteSingleFile(String filePath$Name) {File file = new File(filePath$Name);// 如果文件路径所对应的文件存在,并且是一个文件,则直接删除if (file.exists() && file.isFile()) {if (file.delete()) {Log.e("--Method--", "删除文件" + filePath$Name + "成功!");return true;} else {Log.e("--Method--", "删除文件" + filePath$Name + "失败!");return false;}} else {Log.e("--Method--", "文件" + filePath$Name + "不存在!");return true;}}/*** 读取本地文件*/public String readRate(String path) {StringBuilder stringBuilder = new StringBuilder();File file = new File(path);if (!file.exists()) {return "";}if (file.isDirectory()) {Log.e("TestFile", "The File doesn't not exist.");return "";} else {try {InputStream instream = new FileInputStream(file);if (instream != null) {InputStreamReader inputreader = new InputStreamReader(instream);BufferedReader buffreader = new BufferedReader(inputreader);String line;while ((line = buffreader.readLine()) != null) {stringBuilder.append(line);}instream.close();}} catch (java.io.FileNotFoundException e) {Log.e("TestFile", "The File doesn't not exist.");return "";} catch (IOException e) {Log.e("TestFile", e.getMessage());return "";}}return stringBuilder.toString();//对读到的设备ID解密}
}

        //读取uuidfileOper = new FileOper(this);try {if(fileOper.fileIsExists(Environment.getExternalStorageDirectory().getAbsolutePath()+uuidfileName)){UseMac.saveBitmap();}}catch(Exception e){System.out.println("base64Code:::"+e.toString());//出现异常的处理}

3.1.修改

    public static final String main(Context context) {//return TVMac(context);String uuid = "";try {uuid = readKey();} catch (IOException e) {e.printStackTrace();}return uuid;}

相关文章:

Android:获取MAC < 安卓系统11 <= 获取UUID

1.核心代码 主要的UseMac.java import android.annotation.SuppressLint; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import an…...

线程的几种状态

目标&#xff1a; 1. 线程的几种状态的含义 2. 状态之间的切换条件 目录 新建&#xff08;new&#xff09;线程 可运行&#xff08;Runnable&#xff09;状态 运行&#xff08;Running&#xff09;状态 阻塞&#xff08;Blocked&#xff09;状态 等待&#xff08;Waiting…...

kubernetes集群yaml文件与kubectl工具

k8s集群中对资源管理和资源对象编排部署都可以通过声明样式(yaml)文件来解决&#xff0c;也就是可以把需要对资源对象操作编辑到yaml格式文件中&#xff0c;我们把文件叫做资源清单文件&#xff0c;通过kubectl命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署…...

python基础语法(三)

感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 &#x1f412;&#x1f412;&#x1f412;个人主页 &#x1f978;&#x1f978;&#x1f978;C语言 &#x1f43f;️&#x1f43f;️&#x1f43f;️C语言例题 &#x1f423;&#x1f413;&#x1f3c0;python 运…...

Haproxy集群与常见的Web集群调度器

文章目录 1. Web集群调度器概述1.1 Web集群调度器简介1.2 调度器类别1.2.1 常用软件类1.2.2 常用硬件类 2. Haproxy软件介绍2.1 Haproxy简介2.2 支持功能2.3 主要特性2.4 常用调度算法2.4.1 轮询&#xff1a;RR&#xff08;Round Robin&#xff09;2.4.2 最小连接数&#xff1a…...

centos免密登录

centos免密登录 小白教程&#xff0c;一看就会&#xff0c;一做就成。 1.知道服务器密码的情况 ssh-keygen -t rsa #上面的命令后三次回车#然后把想要免密登录的服务器加进来 ssh-copy-id -i /root/.ssh/id_rsa.pub root192.168.10.115 #免密码登录被控的主机&#xff08;ip是…...

学Python的漫画漫步进阶 -- 第十四步

学Python的漫画漫步进阶 -- 第十四步 十四、网络通信14.1 基本的网络知识14.1.1 TCP/IP14.1.2 IP地址14.1.3 端口14.1.4 HTTP/HTTPS 14.2 搭建自己的Web服务器14.3 urllib.request模块14.3.1 发送GET请求14.3.2 发送POST请求 14.4 JSON数据14.4.1 JSON文档的结构14.4.2 JSON数据…...

OpenCV(四十二):Harris角点检测

1.Harris角点介绍 什么是角点&#xff1f; 角点指的是两条边的交点&#xff0c;图中红色圈起来的点就是角点。 Harris角点检测原理&#xff1a;首先定义一个矩形区域&#xff0c;然后将这个矩形区域放置在我的图像中&#xff0c;求取这个区域内所有的像素值之和&#xff0c;之…...

C++数据结构题:DS 顺序表--连续操作

建立顺序表的类&#xff0c;属性包括&#xff1a;数组、实际长度、最大长度&#xff08;设定为 1000 &#xff09; 该类具有以下成员函数&#xff1a; 构造函数&#xff1a;实现顺序表的初始化。 插入多个数据的 multiinsert(int i, int n, int item[]) 函数&#xff0c;实…...

DM@命题公式@主范式的性质和应用@数理逻辑解决数字电路全加器问题

文章目录 abstract主合取范式与主析取范式间的关系&#x1f47a;主范式存在及唯一性定理例 主范式的性质&#x1f47a;求公式的成真与成假赋值主析取范式直接得到主合取范式 判断公式的类型 n n n元命题公式的主析取范式(主合取范式)的个数判断两个命题公式是否等值 给出一个满…...

基于微信小程序+Springboot线上租房平台设计和实现【三端实现小程序+WEB响应式用户前端+后端管理】

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

Xilinx FPGA 7系列 GTX/GTH Transceivers (2)--IBERT

IBERT GTX IBERT核心提供了基础广泛的物理介质附件(PMA)评估7系列FPGA GTX收发器的演示平台。可参数化以使用不同GTX收发器和时钟拓扑,IBERT核心也可以定制使用不同的线速率、参考时钟速率和逻辑宽度。数据模式生成器和每个所需的GTX收发器都包含了检查程序,给出了几个不同…...

Python 文件介绍和正则表达式

文章目录 Python 文件和正则表达式文件打开文件读取文件直接读取 read()&#xff1a;逐行读取采用 **for** 循环&#xff1a;采用 readlines()&#xff1a; 正则表达式匹配规则re 模块match 方法&#xff1a;search 方法group 方法split 方法编译&#xff1a;compile 方法 Pyth…...

ueditor百度富文本编辑器粘贴后html丢失class和style样式

问题 项目经理从123在线编辑上排版好的文章&#xff0c;粘贴到项目的编辑器上&#xff0c;样式完全乱了, 排版是这样的&#xff1a; 复制到ueditor后的格式&#xff1a; 这天差地别呀&#xff0c;于是打开代码模式&#xff0c;发现section的属性全没了 但是&#xff0c;sp…...

人脸自动贴国旗

&#xff08;一&#xff09;简介 国庆快到了&#xff0c;每年这个时候&#xff0c;大家的头像都会贴上国旗水印&#xff0c;然后我就像这刚好可以用opencv dilb实现一个简单的自动将国旗贴在人脸上&#xff0c;刚好配合gradio写一个简单的demo gradio官方文档 &#xff08;…...

异步FIFO设计

1 FIFO简介 FIFO的本质是RAM&#xff0c;具有先进先出的特性。 FIFO的基本使用原则&#xff1a;空时不能读&#xff0c;满时不能写 FIFO的两个重要参数&#xff1a;宽度和深度 FIFO的两种类型&#xff1a; 同步FIFO&#xff1a;读写时钟相同&#xff0c;通常用来做数据缓存…...

学习python和anaconda的经验

PYTHON 1 常用命令 1.1 1.1 注释 Python注释多行的方法有以下三种:使用ctrl+/实现多行注释、在每一行的开头使用shift+#键、输入’‘’ ‘’或者"“” “”",将要注释的代码插在中间 1.2 def init( ):函数 区分两个函数: 1.def init(self): 这种形式在__init_…...

【Linux】多线程【上】

文章目录 前言1、Linux线程概念1-1、什么是线程&#xff1f;1-1-1、如何看待页表1-1-2、回顾进程地址空间1-1-3、页表怎么进行虚拟地址到物理地址的映射的&#xff1f;1-1-4、Linux中线程的概念&#xff08;重点&#xff09;1-1-5、原生线程库1-1-6、代码测试1-1-7、知识点&…...

生成式人工智能在高等教育 IT 中的作用

作者&#xff1a;Jared Pane 通过将你大学的数据与公共 LLMs 和 Elasticsearch 安全集成来找到你需要的答案。 根据 2023 年 4 月 EDUCAUSE 的一项调查&#xff0c;83% 的受访者表示&#xff0c;生成式人工智能将在未来三到五年内深刻改变高等教育。 学术界很快就询问和想象生…...

黑龙江省DCMM认证、CSMM认证、CMMM认证、知识产权等政策奖励

2023年8月28日 为深入落实党的二十大精神&#xff0c;认真落实省第十三次党代会关于创新龙江建设的部署要求&#xff0c;全面贯彻新发展理念&#xff0c;融入和服务构建新发展格局&#xff0c;实施创新驱动发展战略&#xff0c;着力建设创新龙江&#xff0c;不断塑造振兴发展新…...

腾讯云2023年云服务器优惠活动价格表

腾讯云经常推出各种云产品优惠活动&#xff0c;为了帮助大家更好地了解腾讯云服务器的价格和优惠政策&#xff0c;下面给大家分享腾讯云最新云服务器优惠活动价格表&#xff0c;助力大家轻松上云&#xff01; 一、轻量应用服务器优惠活动价格表 1、轻量应用服务器&#xff1a;…...

Sleuth--链路追踪

1 链路追踪介绍 在大型系统的微服务化构建中&#xff0c;一个系统被拆分成了许多模块。这些模块负责不同的功能&#xff0c;组合成系统&#xff0c;最终可以提供丰富的功能。在这种架构中&#xff0c;一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上&…...

MyBatis初级

文章目录 一、mybatis1、概念2、JDBC缺点2.1、之前jdbc操作2.2 、原始jdbc操作的分析 3、mybatis的使用3.1、导入maven依赖3.2、新建表3.3、实体类3.4、编写mybatis的配置文件3.5、编写接口 和 映射文件3.6、编写测试类3.7、注意事项 4、代理方式开发5、mybatis和spring整合5.1…...

Spring 学习(二)AOP

一、什么是AOP Aspect Oriented Programming&#xff0c;即面向切面编程。对一个大型项目的代码而言&#xff0c;整个系统要求关注安全检查、日志、事务等功能&#xff0c;这些功能实际上“横跨”多个业务方法。在一般的OOP编程里&#xff0c;需要在每一个业务方法内添加相关非…...

笔记1.1 计算机网络基本概念

计算机网络是通信技术与计算机技术紧密结合的产物 通信系统模型&#xff1a; 计算机网络是一种通信网络 计算机网络是互连的、自洽的计算机集合。 互连&#xff1a;互联互通 自洽&#xff1a;无主从关系 通过交换网络互连主机 Internet&#xff1a;数以百万计的互连的计算设…...

液压切管机配套用液压泵站比例阀放大器

液压切管机配套用液压泵站是液压系统的动力源&#xff0c;可按机械设备工况需要提供一定压力、流量和清洁度的工作介质。它由泵组、油箱组件、控温组件、滤油器组件及蓄能器组件等组合而成&#xff0c;液压泵站主要服务于大型管道工程。...

C++ Primer Plus 第七章笔记

目录 函数基本知识 没有返回值的函数&#xff1a;void函数 有返回值的函数&#xff1a; 函数原型 1.为什么需要函数原型&#xff1f; 2.函数原型的语法 3.函数原型的功能 按值传递函数参数 形参和实参 局部变量 参数问题 使用const指针参数 调用自身的函数&#xf…...

常用数据库的 API - 开篇

API API 这个词在大多数人看来可能和 CNS 差不多&#xff0c;前者天天听说就是用不上&#xff0c;后者天天读就是发不了。 不过&#xff0c;通过今天的一个简短介绍&#xff0c;今后 API 这个东西你就用上了&#xff0c;因为在文章最后我将会展示一个最最基础且高频的 API 使…...

C++之生成详细汇编代码(二百一十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…...

AIGC|当一个程序员学会用AI来辅助编程实践

一、辅助编程 作为主要以 JAVA 语言为核心的后端开发者&#xff0c;其实&#xff0c;早些时间我也用过比如 Codota、Tabnine、Github 的 Copilot、阿里的 AI Coding Assistant 等 IDEA 插件&#xff0c;但是我并没有觉得很惊奇&#xff0c;感觉就是生成一些代码片段罢了&#x…...

咖啡网页设计毕业论文/360优化大师下载安装

将近半个月的时间&#xff0c;终于完成了牛腩新闻发布系统并实现了发布。可以说是从C/S到B/S的一个转变吧。只能说是一个B/S入门小系统。 初次接触B/S还是很兴奋的&#xff0c;对我来说&#xff0c;以前不知道网页是如何做出来的&#xff0c;这次可以自己制作一个网页还是很有成…...

什么是网络营销?它包括了哪些主要环节?/seo案例分享

文章目录1. 基本操作① git init 初始化仓库② git status 查看仓库中的状态③ git add 向暂存区中添加文件④ git commit 保存仓库的历史记录⑤ git log 查看提交日志⑥ git diff 查看更改前后的差别⑧ 删除本地Git仓库2. 分支操作① git branch 显示分支表和当前分支、创建、…...

上海百度做网站/哪有学电脑培训班

苹果的Safari 浏览器默认情况下会开启欺诈性网址警告&#xff0c;该功能旨在帮助用户访问某些网站时检查提供安全建议。例如当用户访问的网站属于钓鱼网站会存在恶意内容&#xff0c;则欺诈性网址警告会立即弹出提示自动阻止用户继续访问。如何判断网站是否存在恶意内容或属于钓…...

成都网站开发公司哪家好/太原做网络推广的公司

&#xfeff;&#xfeff;在最新的ActiveReports 9报表控件添加了几个新功能&#xff0c;为了帮助您创建一个漂亮的外观在较短的时间内、强大的报表系统。本文重点讨论创新的分层设计报告&#xff0c;分组报告内容管理和设计&#xff0c;于实现报表套打等功能&#xff0c;主要内…...

外贸网站优化建设/微信推广平台收费标准

1. 什么是网络 说明 网络就是一种辅助双方或者多方能够连接在一起的工具 如果没有网络可想单机的世界是多么的孤单 单机游戏&#xff08;不能和远在他乡的朋友一起玩&#xff09; 2. 使用网络的目的 就是为了联通多方然后进行通信用的&#xff0c;即把数据从一方传递给另外一方…...

西安手机网站建设动力无限/指数函数图像及性质

参考文章为&#xff1a;http://www.cnblogs.com/huazaizai/archive/2010/11/03/1867907.html background-position属性有三种方式可以设置&#xff1a; 1、百分比 x% y% 2、位置 水平&#xff1a;left|center|right; left相当于x为0% center 50% right 100% 垂直&#xff…...