Android中獲取設備的各種信息總結

Android中獲取設備的各種信息總結

發(fā)布時間:2016-09-07 09:23:11

相信各位Android的開發(fā)者們都知道对供,現(xiàn)在幾乎所有的app都需要獲得設備信息耿导,那么下面這篇文章就來詳細說說獲取設備信息的方法密幔。

一弦讽、屏幕分辨率

Display display = getWindowManager().getDefaultDisplay();

Point size = new Point();

display.getSize(size);

int width = size.x;

int height = size.y;

或者:

DisplayMetrics metrics = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(metrics);

int width = metrics.widthPixels;

int height = metrics.heightPixels

上面的代碼是要在能獲取到Activity的情況下使用的忙芒,如果無法獲取到Activity磕道,則可以使用一下的代碼:

WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);

Display display = wm.getDefaultDisplay();

Point point = new Point();

display.getSize(point);

int width = point.x;

int height = point.y;

二供屉、屏幕尺寸

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

int width=dm.widthPixels;

int height=dm.heightPixels;

int dens=dm.densityDpi;

double wi=(double)width/(double)dens;

double hi=(double)height/(double)dens;

double x = Math.pow(wi,2);

double y = Math.pow(hi,2);

double screenInches = Math.sqrt(x+y);

同樣,上面的代碼需要在能獲取到Activity溺蕉。

三伶丐、獲取app名稱

public static String getAppName(Context context) {

? String appName = "";

? try {

? ? PackageManager packageManager = context.getPackageManager();

? ? ApplicationInfo applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), 0);

? ? appName = (String) packageManager.getApplicationLabel(applicationInfo);

? } catch (PackageManager.NameNotFoundException e) {

? ? e.printStackTrace();

? }

? return appName;

}

四、獲取設備廠商和設備名稱信息

// 設備廠商

String brand = Build.BRAND;

// 設備名稱

String model = Build.MODEL;

獲取DeviceID疯特,SIM和IMSI

TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

String deviceId = tm.getDeviceId();

String sim = tm.getSimSerialNumber();

String imsi = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE).getSubscriberId()哗魂;

注意需要在AndroidManifest中添加權限

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

五、獲取網絡狀態(tài)

public static String getAPNType(Context context) {

? //結果返回值

? String netType = "nono_connect";

? //獲取手機所有連接管理對象

? ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

? //獲取NetworkInfo對象

? NetworkInfo networkInfo = manager.getActiveNetworkInfo();

? //NetworkInfo對象為空 則代表沒有網絡

? if (networkInfo == null) {

? ? return netType;

? }

? //否則 NetworkInfo對象不為空 則獲取該networkInfo的類型

? int nType = networkInfo.getType();

? if (nType == ConnectivityManager.TYPE_WIFI) {

? ? //WIFI

? ? netType = "wifi";

? } else if (nType == ConnectivityManager.TYPE_MOBILE) {

? ? int nSubType = networkInfo.getSubtype();

? ? TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

? ? //4G

? ? if (nSubType == TelephonyManager.NETWORK_TYPE_LTE

? ? ? ? && !telephonyManager.isNetworkRoaming()) {

? ? ? netType = "4G";

? ? } else if (nSubType == TelephonyManager.NETWORK_TYPE_UMTS || nSubType == TelephonyManager.NETWORK_TYPE_HSDPA || nSubType == TelephonyManager.NETWORK_TYPE_EVDO_0 && !telephonyManager.isNetworkRoaming()) {

? ? ? netType = "3G";

? ? //2G 移動和聯(lián)通的2G為GPRS或EGDE辙芍,電信的2G為CDMA

? ? } else if (nSubType == TelephonyManager.NETWORK_TYPE_GPRS || nSubType == TelephonyManager.NETWORK_TYPE_EDGE || nSubType == TelephonyManager.NETWORK_TYPE_CDMA && !telephonyManager.isNetworkRoaming()) {

? ? ? netType = "2G";

? ? } else {

? ? ? netType = "2G";

? ? }

? }

? return netType;

}

六啡彬、判斷設備是否root

網上有很多判斷方法,但有些會在界面上彈窗提示獲取權限故硅,下面介紹一種無需彈窗判斷設備是否root的方法:

/** 判斷手機是否root庶灿,不彈出root請求框<br/> */

? public static boolean isRoot() {

? ? String binPath = "/system/bin/su";

? ? String xBinPath = "/system/xbin/su";

? ? if (new File(binPath).exists() && isExecutable(binPath))

? ? ? return true;

? ? if (new File(xBinPath).exists() && isExecutable(xBinPath))

? ? ? return true;

? ? return false;

? }

? private static boolean isExecutable(String filePath) {

? ? Process p = null;

? ? try {

? ? ? p = Runtime.getRuntime().exec("ls -l " + filePath);

? ? ? // 獲取返回內容

? ? ? BufferedReader in = new BufferedReader(new InputStreamReader(

? ? ? ? ? p.getInputStream()));

? ? ? String str = in.readLine();

? ? ? if (str != null && str.length() >= 4) {

? ? ? ? char flag = str.charAt(3);

? ? ? ? if (flag == 's' || flag == 'x')

? ? ? ? ? return true;

? ? ? }

? ? } catch (IOException e) {

? ? ? e.printStackTrace();

? ? } finally {

? ? ? if (p != null) {

? ? ? ? p.destroy();

? ? ? }

? ? }

? ? return false;

? }

七、總結

以上就是關于獲取Android中設備各種信息的全部內容吃衅,這篇文章對大家開發(fā)Android App具有一定參考借鑒價值往踢,希望對大家能有所幫助,如果有疑問大家可以留言交流徘层。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末峻呕,一起剝皮案震驚了整個濱河市利职,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瘦癌,老刑警劉巖猪贪,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異讯私,居然都是意外死亡热押,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人院塞,你說我怎么就攤上這事能颁。” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我间雀,道長,這世上最難降的妖魔是什么镊屎? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任雷蹂,我火速辦了婚禮,結果婚禮上杯道,老公的妹妹穿的比我還像新娘匪煌。我一直安慰自己,他們只是感情好党巾,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布萎庭。 她就那樣靜靜地躺著,像睡著了一般齿拂。 火紅的嫁衣襯著肌膚如雪驳规。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天署海,我揣著相機與錄音吗购,去河邊找鬼。 笑死砸狞,一個胖子當著我的面吹牛捻勉,可吹牛的內容都是我干的。 我是一名探鬼主播刀森,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼踱启,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起埠偿,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤透罢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后冠蒋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羽圃,經...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年抖剿,在試婚紗的時候發(fā)現(xiàn)自己被綠了统屈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡牙躺,死狀恐怖,靈堂內的尸體忽然破棺而出腕扶,到底是詐尸還是另有隱情孽拷,我是刑警寧澤,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布半抱,位于F島的核電站脓恕,受9級特大地震影響,放射性物質發(fā)生泄漏窿侈。R本人自食惡果不足惜炼幔,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望史简。 院中可真熱鬧乃秀,春花似錦、人聲如沸圆兵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殉农。三九已至刀脏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間超凳,已是汗流浹背愈污。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留轮傍,地道東北人暂雹。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像创夜,于是被迫代替她去往敵國和親擎析。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

推薦閱讀更多精彩內容