获得Build、PackageInfo等手机信息

Android修改默认语言时区 不同平台或芯片,修改目录不一样,展锐, mtk, RK修改方法都不一样,安卓版本不一样也可能修改方法也不一样. 阅读详情
public class BuildInfo {
	public static String getVersionName(Context context) {
		try {
			PackageInfo pInfo = context.getPackageManager().getPackageInfo(
					context.getPackageName(), PackageManager.GET_META_DATA);
			if (pInfo != null) {
				return pInfo.versionName;
			}
		} catch (NameNotFoundException e) {
			Log.w("getVersionName()", Log.getStackTraceString(e));
		}
		return "";
	}
	public static boolean isDebuggable(Context context) {
		try {
			PackageInfo pInfo = context.getPackageManager().getPackageInfo(
			context.getPackageName(), PackageManager.GET_META_DATA);
			if (pInfo != null) {
				if ( 0 != (pInfo.applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE)) {
					return true;
				}
			}
		} catch (NameNotFoundException e) {
			Log.w("isDebuggable()", Log.getStackTraceString(e));
		}
		return false;
	}
	/*
	 * add macaddress to default id to take care of those duplicates...
	 */
	public static String getAndroidID(Context context) {
		String id = Secure.getString(context.getContentResolver(), Secure.ANDROID_ID);
		if(id!=null) {
			PackageManager pm = context.getPackageManager();
			if(PackageManager.PERMISSION_GRANTED ==
				    pm.checkPermission(android.Manifest.permission.ACCESS_WIFI_STATE, context.getPackageName())) {
				WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
				if(wm!=null) {
					id = String.format("%s-%s", id, wm.getConnectionInfo().getMacAddress());
				}
			}
		}
		return id;
	}
	public static String getBuildInfo() { // minimal info for 1.5 support
		final String buildInfo = String.format("AndroidVersion= %s Product= %s ID= %s Model= %s",
				android.os.Build.VERSION.RELEASE, android.os.Build.PRODUCT, android.os.Build.ID, android.os.Build.MODEL);
		return buildInfo;
	}
}
public class BuiltTestActivity extends Activity{
	private static final String TAG = "BuiltTestActivity";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
	
		String versionName = BuildInfo.getVersionName(this);
		Log.i(TAG, versionName);
		
		String androidId = BuildInfo.getAndroidID(this);
		Log.i(TAG, androidId);
		
		String buildInfo = BuildInfo.getBuildInfo();
		Log.i(TAG, buildInfo);
		
		boolean isDebuggable = BuildInfo.isDebuggable(this);
		if (isDebuggable) {
			Log.i(TAG, "Debuggable true");
		}else {
			Log.i(TAG, "Debuggable false");
		}
	}
}
12-15 09:55:07.931: I/BuiltTestActivity(28656): 1.0
12-15 09:55:07.935: I/BuiltTestActivity(28656): f09854aa124dc3e6
12-15 09:55:07.935: I/BuiltTestActivity(28656): AndroidVersion= 2.3.1 Product= meizu_m9 ID= GINGERBREAD Model= m9

12-15 09:55:07.935: I/BuiltTestActivity(28656): Debuggable false

备注:

public static String getBuildInfo() { // minimal info for 1.5 support
		final String buildInfo = String.format("AndroidVersion= %s Product= %s ID= %s Model= %s",
				android.os.Build.VERSION.RELEASE, android.os.Build.PRODUCT, android.os.Build.ID, android.os.Build.MODEL);
		return buildInfo;
	}
注意这种格式化输出信息


安卓获取设备及系统信息小结 安卓开发过程中,免不了要获取一些系统信息,常用的大致就是从 Build、PackageInfo、ApplicationInfo、TelephonyManager 中拿,这里将这些知识做一个小结,具体使用后面再开个辅助类博客介绍吧! 下面看具体内容: Build Build 类可以用来获取Android系统的相关信息。 字段 含义 示例 用法 Build.BRAND 产品品牌 Meizu 通过这个字段可以获取到对用户有意义的手机厂商名称,例如Xiaomi,Meizu,Huawei等。 Bu 阅读详情

相关推荐

modbus-esp8266库深度解析:工业级Modbus协议栈实现

Modbus是一种广泛应用于工业自动化领域的通用串行通信协议,其核心在于标准化的功能码、寄存器模型与帧结构设计。基于RTU、ASCII和TCP三种传输变体,Modbus协议通过主从架构实现设备间可靠数据交互,具备低开销、高兼容性与强实时性等技术价值。在边缘计算与工业物联网场景中,它被广泛用于PLC通信、传感器数据采集、HMI集成及远程固件升级(FOTA)等关键任务。针对ESP8266/ESP32等Wi-Fi微控制器平台,modbus-esp8266库提供了完整协议栈支持,涵盖多实例并发、回调驱动架构、零拷贝

weixin_42315569的博客 350

Android 11 添加自定义buildinfo.sh

1. 创建项目自定义buildinfo.sh文件 #!/bin/bash echo "# add build properties" echo "# Repeat the key value," echo echo "# Product info start" echo "ro.build.rom.internal.version=$USER_VERSION_INTERNAL_NAME" 2. 将buildinfo.sh 文件在编译过程中生成到system.prop build\make\cor.

wpx712 博客 2060

STM32F407实现LwIP的MQTT客户端并连接到服务器

这个是用LwIP协议栈中自带的MQTT客户端API写成的,代码注释很详细,附带有服务端的展示。LwIP版本是2.1.2.

wait_for_STM32的博客 6396

[AndroidO] [RK3399] -- 更新版本号

在这里,更新版本号包括三部分的内容: 更新统一打包的img文件的名称; 系统设置--关于手机--版本号:ro.build.display.id; custom version:ro.hz.internal.version; 源码修改分别如下: diff --git a/FFTools/mkupdate/mkupdate.sh b/FFTools/mkupdate/mkupdate.sh ...

u014674293的博客 1529

专题一:Labview表格控件 及 应用(三)在表格中插入一行数据

专题一:Labview表格控件 及 应用(三) 在表格中插入一行数据 最近一段时间,做试验台上位机编程,老是用到表格控件,这几天抽时间专门写一个表格控件的专题。有用到的朋友可以参考一下。 今天接着讲一下,表格控件的数据插入,和相关的操作 1.表格控件的数据插入原理: 表格控件是一个 2D 字符串数组。 在表格插入一行,就是在2D数组插入一行。 行、列插入类似** 以下以成绩录入为例说明 2.1 不要表头直接插入 知识点1:创建数组:把数学,语文,英语三个数值,连成一个一位数组(数值型)。 知

Labview十年工控_702老师的博客 1万+

Tesla V100 在 Windows 下的驱动选择与模式切换实战

本文详细解析了Tesla V100专业计算卡在Windows系统下的驱动安装与模式切换实战。针对设备管理器识别但任务管理器“隐身”的常见问题,文章指出其默认TCC模式为纯计算设计,并指导用户正确选择数据中心或GRID驱动。核心在于通过注册表修改或驱动选择,在高效的TCC模式与便于监控的WDDM模式间切换,同时提供了nvidia-smi命令行监控与AI框架测试等稳定使用方案。

weixin_29247219的博客 1807

jenkins获取build_info

import jenkins import time def LoginJenkins(url, username=None, password=None): return jenkins.Jenkins(url,username,password) InstanceJenkins = LoginJenkins("http://10.0.0.40:8080/","admin","Lipanxiang@1102") def get_build_info_detail(Instance.

qq_29572445的博客 883

ROS入门(一)——ROS安装(vmware16+ubuntu20.04+ROS-Noetic)

嵌套:ROS可以在Ubuntu上运行,Ubuntu在虚拟机Vmware中安装。 从 虚拟机vmware安装→ubuntu安装→ros安装,逐步介绍安装ROS环境的过程。整个过程是我一步步跟着各种博客安装实现的,亲测可行。 版本: Vmware :Vmware Workstation16 Ubuntu :20.04 ROS :Noetic 其中vmware直接载当前最新版本就好,而ubuntu的版本要注意一下。 在ROS官网(cn - ROS Wiki),我们进入到ROS安装的步骤界面,可以看..

Netceor的博客 9740

android获取版本号信息,Android获取手机的版本号等信息的代码

本文实例分享了Android获取手机系统版本等信息的方法,供大家参考,具体内容如下:第一种代码:String phoneInfo = "Product: " + android.os.Build.PRODUCT;phoneInfo += ", CPU_ABI: " + android.os.Build.CPU_ABI;phoneInfo += ", TAGS: " + android.os.Bui...

weixin_42350914的博客 1051

3D-IC测试挑战与Tessent解决方案解析

3D-IC技术通过硅通孔(TSV)实现芯片垂直堆叠,是延续摩尔定律的关键路径。该技术面临三大核心挑战:KGD标准严苛化要求测试覆盖率达99.5%以上,存储器测试需兼容LPDDR/HBM等多种协议,逻辑堆叠需解决TSV互连的电气特性和时序验证问题。Mentor Tessent平台采用混合测试架构,结合压缩扫描测试(ATPG)和内建自测试(BIST)技术,实现100x测试数据压缩比和99.97%的TSV缺陷检出率。这些创新方案在移动SoC和高性能计算芯片中已获验证,测试时间缩短73%,缺陷逃逸率降低77%。随着

weixin_30621711的博客 376

【fNIRS可视化学习1】基于NIRS-SPM进行光极可视化并计算通道坐标

设头皮上的目标点为P₀(x₀, y₀, z₀),需要在大脑皮层点集S上找到最合适的投影点P'。

Rose9614的博客 2208

获取手机型号、系统版本号、APP版本号信息(常用语全局异常处理中收集错误信息)

package cn.testgethandsetinfo; import android.os.Bundle; import android.text.TextUtils; import android.widget.TextView; import android.app.Activity; import android.content.Context; import android

ThemeLove的博客 1640

从东南大学906被刷到调剂过程(内含个人感想)

介绍了自己在看到初试成绩,到后期复习以及调剂的全过程,当中也包含了自己的复试中的感想,希望大家理性看待。

Philo的博客 2856

Android获取手机型号,系统版本,App版本号等信息

MainActivity如下: package cn.testgethandsetinfo; import android.os.Bundle; import android.text.TextUtils; import android.widget.TextView; import android.app.Activity; import android.content.Context; im

mrleeapple的专栏 2742

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android 获取手机的一些硬件信息

在开发app的时候,我们有时候需要获取手机的一些硬件信息,比如说imei,mac地址之类的,下面我给个示例。 public class CommentUtil {     public static Context context;     public static Application application;          public static void setCo

actor1999的专栏 703

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Android获取设备信息的工具类

上篇贴出获取设备Id的代码以及使用,今天直接贴出工具类,获取到的信息可以有 当前手机系统语言,当前手机系统版本号,手机型号厂商 ,手机IMEI,全局唯一UUID等信息。 public class SystemUtil { /** * 获取当前手机系统语言。 * * @return 返回当前系统语言。例如:当前设置的是“中文-中国”,则返回“zh-CN” ...

lareinax5的博客 787

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Android 获取手机系统信息

import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.t...

qq_32136827的博客 908

Android获取和判断当前手机状态和信息

转自:http://www.open-open.com/code/view/1437703127396 判断用户是否开启某个服务 public static boolean serviceIsStart(Context cont, String className) { ActivityManager mActivityManager = (Activity

Dijkstra的专栏 1587

Android获取手机和应用的相关信息

获取Android手机和应用的相关信息的常用方法 为了使用方便,这里记录一下。直接上代码: package com.example.projecttest; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager;

OONullPointerAlex的博客 749

获取Android相关版本信息

获取Android相关版本信息 大家请看: 1、获取在AndroidManifest.xml中配置的版本号:     /**        * 返回当前程序版本名称        */       public static String getAppVersionName(Context context) {           String versionName = "";  

屌丝技术之旅 941

《Android群英传》读书笔记(10)第九章:Android系统信息与安全机制

Android系统信息获取 获取系统信息的途径,有下面两种途径: android.os.BuildSystemProperty android.os.Build类里面的信息非常丰富,它包含了系统编译时的大量设备、配置信息,下面列举了一些: Build.BOARD——主板Build.BRAND——Android系统定制商Build.SUPPORTED_ABIS——CPU指

chaoyang805的博客 839

Android 获取设备各种信息以及其它

转载自:http://blog.youkuaiyun.com/ainiyidiandian/article/details/6340111 做手机开发,想必都希望获取手机号码吧,Android中有一个类android.telephony.TelephonyManager提供这个功能。 TelephonyManager tm = (TelephonyManager)this.getSystemService

lkx94的专栏 4390

Android系统信息和Apk应用信息获取

获取Android系统信息和Apk应用信息

黄飞的专栏 3863

手机银行闪退的根子在这:PlayIntegrityFix 让设备重新通过 Play Integrity 检测

解锁了 Bootloader 之后,银行 App 一打开就闪退、支付应用拒绝登录、部分游戏直接踢人——这些现象背后多半是同一个原因:设备没通过 Google 的 Play Integrity 完整性检测。**PlayIntegrityFix** 是一个开源的 Magisk/KernelSU 模块,用于修复 Play Integrity(以及 SafetyNet)的检测结论,支持 Android 8

gitblog_01140的博客 720
上一篇: 按位与
下一篇: Eclipse 插件
GaoJava08
博客等级 码龄18年 201粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值