在開發(fā)手機(jī)應(yīng)用時(shí),有時(shí)需要獲取手機(jī)的型號(hào)、品牌等信息,但是手機(jī)的型號(hào)和品牌是不固定的。如何讓軟件能夠讀取手機(jī)的型號(hào)呢?下面介紹幾種方法。
1.使用Build類獲取手機(jī)型號(hào)
Android系統(tǒng)提供了Build類可以獲取手機(jī)的型號(hào)、品牌等信息。使用方法如下:
Stringmodel=Build.MODEL;//獲取手機(jī)型號(hào)
Stringbrand=Build.BRAND;//獲取手機(jī)品牌
需要添加讀取設(shè)備信息的權(quán)限
2.通過系統(tǒng)服務(wù)獲取設(shè)備信息
Android系統(tǒng)提供了獲取系統(tǒng)服務(wù)的方法,利用此方法可以獲取設(shè)備信息。使用方法如下:
TelephonyManagermTm=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);//獲取系統(tǒng)服務(wù)
Stringimei=mTm.getDeviceId();//獲取設(shè)備IMEI碼
Stringimsi=mTm.getSubscriberId();//獲取設(shè)備IMSI碼
Stringmodel=Build.MODEL;//獲取手機(jī)型號(hào)
Stringbrand=Build.BRAND;//獲取手機(jī)品牌
需要添加讀取手機(jī)狀態(tài)和身份的權(quán)限
3.自定義TextView獲取手機(jī)信息
在Android中,TextView有一個(gè)屬性android:text="@android:os.Build.MODEL",可以動(dòng)態(tài)獲取手機(jī)型號(hào)。使用方法如下:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@android:os.Build.MODEL"/>
4.使用第三方庫獲取設(shè)備信息
如果以上方法用起來比較麻煩,還可以使用第三方庫獲取設(shè)備信息。例如:DeviceUtils庫。使用方法如下:
Stringmodel=DeviceUtils.getModel();//獲取手機(jī)型號(hào)
Stringbrand=DeviceUtils.getBrand();//獲取手機(jī)品牌
需要在build.gradle中添加庫的依賴
5.調(diào)用系統(tǒng)API獲取設(shè)備信息
android.provider.Settings.Secure類提供了ANDROID_ID屬性可以獲取設(shè)備的唯一標(biāo)識(shí)符。使用方法如下:
StringandroidId=Settings.Secure.getString(getContentResolver(),Settings.Secure.ANDROID_ID);
6.使用反射模式獲取設(shè)備信息
反射是Java語言中的一種高級(jí)特性,可以通過反射調(diào)用目標(biāo)類的方法和屬性。使用反射模式可以獲取設(shè)備信息。使用方法如下:
Classclazz=Class.forName("android.os.Build");//獲取Build類
Fieldfield=clazz.getDeclaredField("MODEL");//獲取MODEL屬性
Objectobject=clazz.newInstance();//初始化一個(gè)Build類的實(shí)例
Stringmodel=(String)field.get(object);//獲取手機(jī)型號(hào)
以上是幾種獲取設(shè)備信息的方法。開發(fā)者可以根據(jù)自己的需要選擇合適的方法。在應(yīng)用開發(fā)中,獲取設(shè)備信息是必不可少的,希望以上方法對(duì)開發(fā)者有所幫助。