Android 获取手机信息实例详解
程序员文章站
2024-02-18 18:33:58
android 获取手机信息
应用信息:包名、版本号、版本名,手机是否有root权限
手机信息:手机屏幕宽和高、当前可用内存大小、总内存大小、imei号、iesi号...
android 获取手机信息
应用信息:包名、版本号、版本名,手机是否有root权限
手机信息:手机屏幕宽和高、当前可用内存大小、总内存大小、imei号、iesi号、手机型号、手机品牌、手机macadd、cpu型号、cpu频率
开门见山,以下是java代码,xml只有一个textview显示信息。
package com.example.getphoneinfo; import java.io.bufferedreader; import java.io.file; import java.io.filereader; import java.io.ioexception; import android.app.activity; import android.content.context; import android.net.wifi.wifiinfo; import android.net.wifi.wifimanager; import android.os.bundle; import android.os.environment; import android.os.statfs; import android.telephony.telephonymanager; import android.text.format.formatter; import android.view.menu; import android.widget.textview; public class mainactivity extends activity { textview mphoneinfo; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); initview(); initdata(); } private void initdata() { // todo auto-generated method stub getavailmemory();// 获取手机可用内存大小 gettotalmemory();//获取总内存大小 getheightandwidth();//获取屏幕宽高 getinfo();//获取imei号,iesi号,手机型号 getmacaddress();//获取imei号,iesi号,手机型号 getcpuinfo();//手机cpu信息 getpackage();//获取软件包名,版本名,版本号 isroot();//手机是否root string text = getheightandwidth() + "\n" + gettotalmemory() + "\n" + getavailmemory() + "\n" + getinfo() + "\n" + getmacaddress() + "\n" + getcpuinfo() + "\n" + getpackage() + "\n" + isroot(); mphoneinfo.settext(text); } /** * 获取软件包名,版本名,版本号 */ private string getpackage(){ try { string pkname = this.getpackagename(); string versionname = this.getpackagemanager().getpackageinfo( pkname, 0).versionname; int versioncode = this.getpackagemanager() .getpackageinfo(pkname, 0).versioncode; return "package:" + pkname + "\nversionname:" + versionname + "\nversioncode:" + versioncode; } catch (exception e) { } return null; } /** * 获取手机是否root信息 * @return */ private string isroot(){ string bool = "root:false"; try{ if ((!new file("/system/bin/su").exists()) && (!new file("/system/xbin/su").exists())){ bool = "root:false"; } else { bool = "root:true"; } } catch (exception e) { } return bool; } /** * 获取android当前可用内存大小 */ private string getavailmemory() {// 获取android当前可用内存大小 file path = environment.getdatadirectory(); statfs stat = new statfs(path.getpath()); long blocksize = stat.getblocksize(); long availableblocks = stat.getavailableblocks(); return "当前可用内存:" + formatter.formatfilesize(mainactivity.this, blocksize * availableblocks); } /** * 获得系统总内存 */ private string gettotalmemory() { string str1 = "/proc/meminfo";// 系统内存信息文件 string str2; string[] arrayofstring; long initial_memory = 0; try { filereader localfilereader = new filereader(str1); bufferedreader localbufferedreader = new bufferedreader( localfilereader, 8192); str2 = localbufferedreader.readline();// 读取meminfo第一行,系统总内存大小 arrayofstring = str2.split("\\s+"); initial_memory = integer.valueof(arrayofstring[1]).intvalue() * 1024;// 获得系统总内存,单位是kb,乘以1024转换为byte localbufferedreader.close(); } catch (ioexception e) { } return "总内存大小:" + formatter.formatfilesize(getbasecontext(), initial_memory);// byte转换为kb或者mb,内存大小规格化 } /** * 获得手机屏幕宽高 * @return */ public string getheightandwidth(){ int width=getwindowmanager().getdefaultdisplay().getwidth(); int heigth=getwindowmanager().getdefaultdisplay().getheight(); string str = "width:" + width+"\nheight:"+heigth+""; return str; } /** * 获取imei号,iesi号,手机型号 */ private string getinfo() { telephonymanager mtm = (telephonymanager)this.getsystemservice(telephony_service); string imei = mtm.getdeviceid(); string imsi = mtm.getsubscriberid(); string mtype = android.os.build.model; // 手机型号 string mtyb= android.os.build.brand;//手机品牌 string numer = mtm.getline1number(); // 手机号码,有的可得,有的不可得 return "手机imei号:"+imei+"\n手机iesi号:"+imsi+"\n手机型号:"+mtype+"\n手机品牌:"+mtyb+"\n手机号码"+numer; } /** * 获取手机mac地址 * 只有手机开启wifi才能获取到mac地址 */ private string getmacaddress(){ string result = ""; wifimanager wifimanager = (wifimanager) getsystemservice(context.wifi_service); wifiinfo wifiinfo = wifimanager.getconnectioninfo(); result = wifiinfo.getmacaddress(); return "手机macadd:" + result; } /** * 手机cpu信息 */ private string getcpuinfo() { string str1 = "/proc/cpuinfo"; string str2 = ""; string[] cpuinfo = {"", ""}; //1-cpu型号 //2-cpu频率 string[] arrayofstring; try { filereader fr = new filereader(str1); bufferedreader localbufferedreader = new bufferedreader(fr, 8192); str2 = localbufferedreader.readline(); arrayofstring = str2.split("\\s+"); for (int i = 2; i < arrayofstring.length; i++) { cpuinfo[0] = cpuinfo[0] + arrayofstring[i] + " "; } str2 = localbufferedreader.readline(); arrayofstring = str2.split("\\s+"); cpuinfo[1] += arrayofstring[2]; localbufferedreader.close(); } catch (ioexception e) { } return "cpu型号:" + cpuinfo[0] + "\ncpu频率:" + cpuinfo[1]; } public void initview() { // todo auto-generated method stub mphoneinfo = (textview)findviewbyid(r.id.id_tv_phone_info); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.main, menu); return true; } }
注意:添加权限
<uses-permission android:name="android.permission.access_wifi_state" /> <uses-permission android:name="android.permission.read_phone_state" />
以下是效果视图:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
推荐阅读
-
Android中系统自带锁WalkLock与KeyguardLock用法实例详解
-
Android开发之Animations动画用法实例详解
-
Android手机注册登录时获取验证码之后倒计时功能(知识点总结)
-
Android 中的两端对齐实例详解
-
Android 回调详解及简单实例
-
Android实现整理PackageManager获取所有安装程序信息
-
Android Activity启动模式之singleTask实例详解
-
Android持久化技术之SharedPreferences存储实例详解
-
Android Activity启动模式之standard实例详解
-
Android Activity启动模式之singleTop实例详解