1. 程式人生 > >(轉)獲取裝置唯一識別碼和Mac地址

(轉)獲取裝置唯一識別碼和Mac地址

下面這個工具類提供了一些方法,可以獲取裝置AndroidID、IMEI、序列號、以及由他們組成的唯一識別碼、網絡卡的MAC地址、藍芽MAC地址。程式碼如下:

DeviceInfoUtil:

001.packagecom.home; 002. 003.importjava.util.UUID; 004. 005.importandroid.bluetooth.BluetoothAdapter; 006.importandroid.content.Context; 007.importandroid.content.Intent; 008.importandroid.net.wifi.WifiInfo; 009.import
android.net.wifi.WifiManager;
010.importandroid.provider.Settings.Secure; 011.importandroid.telephony.TelephonyManager; 012. 013.publicclass DeviceInfoUtil { 014. 015./** 016.* 得到裝置<a href="http://www.it165.net/pro/ydad/" target="_blank" class="keylink">Android</a>ID,需要裝置新增 Google賬戶 017.* 018.* @param context
019.* @return 020.*/ 021.publicstatic String getAndroidID(Context context) { 022.String androidID = Secure.getString(context.getContentResolver(), 023.Secure.ANDROID_ID); 024.returnandroidID; 025.} 026. 027./** 028.* 得到裝置IMEI值 029.* 030.* @param context 031.* @return 032.*/ 033.publicstatic String getIMEI(Context context) {
034.TelephonyManager tm = (TelephonyManager) context 035..getSystemService(Context.TELEPHONY_SERVICE); 036.returntm.getDeviceId(); 037.} 038. 039./** 040.* 得到裝置序列號 041.* 042.* @param context 043.* @return 044.*/ 045.publicstatic String getSimSerialNumber(Context context) { 046.TelephonyManager tm = (TelephonyManager) context 047..getSystemService(Context.TELEPHONY_SERVICE); 048.returntm.getSimSerialNumber(); 049.} 050. 051./** 052.* 得到裝置唯一識別碼 053.* 054.* @param context 055.* @return 056.*/ 057.publicstatic String getUniqueNumber(Context context) { 058.String androidID = getAndroidID(context); 059.String imei = getIMEI(context); 060.String simSerialNumber = getSimSerialNumber(context); 061.UUID uuid =new UUID(androidID.hashCode(), 062.((long) imei.hashCode() <<32) | simSerialNumber.hashCode()); 063.returnuuid.toString(); 064.} 065. 066./** 067.* 獲取裝置本身網絡卡的MAC地址 068.* 069.* @param context 070.* @return 071.*/ 072.publicstatic String getWLANMACAddress(Context context) { 073.String macAddress =""; 074.WifiManager wm = (WifiManager) context 075..getSystemService(Context.WIFI_SERVICE); 076.WifiInfo info = wm.getConnectionInfo(); 077.if(info != null) { 078.macAddress = info.getMacAddress(); 079.}else { 080.macAddress ="No Wifi Device"; 081.} 082.returnmacAddress; 083.} 084. 085./** 086.* 獲取藍芽MAC地址 087.* 088.* @param context 089.* @return 090.*/ 091.publicstatic String getBluetoothMACAddress(Context context) { 092.String btMacAddress =""; 093.BluetoothAdapter ba = BluetoothAdapter.getDefaultAdapter(); 094.if(ba != null) { 095.if(!ba.isEnabled()) { 096.btMacAddress ="Bluetooth not open"; 097.// 啟動藍芽 098.Intent in =new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 099.context.startActivity(in); 100.}else { 101.btMacAddress = ba.getAddress(); 102.} 103. 104.}else { 105.btMacAddress ="No Bluetooth Device"; 106.} 107.returnbtMacAddress; 108.} 109.}


許可權:

1.<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 2.<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 3.<uses-permission android:name="android.permission.BLUETOOTH"/>

相關推薦

獲取裝置唯一識別Mac地址

下面這個工具類提供了一些方法,可以獲取裝置AndroidID、IMEI、序列號、以及由他們組成的唯一識別碼、網絡卡的MAC地址、藍芽MAC地址。程式碼如下: DeviceInfoUtil: 001.packagecom.home; 002. 003.importja

獲取裝置唯一識別Mac地址

下面這個工具類提供了一些方法,可以獲取裝置AndroidID、IMEI、序列號、以及由他們組成的唯一識別碼、網絡卡的MAC地址、藍芽MAC地址。程式碼如下: DeviceInfoUtil: package com.home; import java.util.UUID;

iOS 獲取裝置唯一識別 IDFV+keychain

最近專案中需要獲取到裝置的唯一標誌傳送給後臺儲存備用,在UDID UUID IDFA等都存在諸多問題(什麼問題可以自己查閱資料)的情況下,選擇了 IDFV+keychain(當然特殊情況下也存在些許問題,但基本無影響,非常夠用)。 identifierForVendor是a

如何獲取Android裝置唯一識別

如果我們想唯一識別一臺Android裝置,就需要獲取裝置的唯一識別碼。怎麼獲取呢? 下面是Android裝置一些可供選擇的唯一識別碼及其適用範圍: IMEI (International Mobile Equipment Identity Number,國際移動裝置識別碼) 用於在手機網路中識別

HTML5+下用js獲取裝置唯一識別本地資料庫的操作

首先獲取裝置的唯一標識,由於ios稽核的阻擋,我現在只是獲取它idfa來作為唯一識別碼(這個會被重置,如果idfa不重要的話是可以考慮此方法的),Android就不用多說了if(ua.match(/iphone\sOS/i) == "iphone os"){//識別裝置ios

Android獲取裝置唯一標識

話不多說,先貼程式碼 /**獲取裝置唯一標識碼
 * @param context 上下文
 * @return 裝置唯一標識碼
 */
 public static String getUDID

獲取手機唯一識別

package com.shkf.util; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import android.annotation.Supp

獲取手機唯一識別IMEI

1. 前言 獲取IMEI相信大家非常熟悉,但是專案中使用時,發現當手機卡為電信的時候,獲取的並不是IMEI,而是MEID,什麼是MEID,為什麼會出現這種情況呢? IMEI國際移動裝置識別碼(IMEI:International Mobile Equipme

android 獲取手機唯一識別

//如果獲取不到imsi號,就拼接其它資訊獲取唯一碼: 結論是,依然有部分手機獲取不到。 final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context

獲取資料庫中前N條記錄

假如我們要寫一個儲存過程,取表中前N條記錄,其中N為引數,以Northwind庫中的Orders表為例,有兩種方法: 第一種是拼SQL CREATE PROCEDURE GetTopNOrders( @RowsToReturn int)ASdeclare @sql varch

獲取HTML頁面內容後格式化顯示的辦法

獲取html頁面內容的方法有很多了,一般都是連線上以後取得頁面的內容,然後進行分析。一般用JDK裡面提供的  URL和URLConnection 類,就可以實現;當然,也可以用其他工具來實現,比如 httpunit(用這個有時候會有問題,如果頁面裡面有反盜鏈的設定或者其他一些有問題的程式碼,很可能就連線不上

Centos7 修改硬件時間系統時間

num root cto zone 時區 lec 時鐘 硬件時間 調整 查看硬件時間 [root@localhost ~]# hwclock --show Tue 13 Jun 2017 02:11:12 AM CST -0.848845 seconds 1 2

Android 手機獲取物理唯一標識IMEI號IMSI號

開發者可以通過物理唯一標識碼和IMEI號 來得知 應用有多少使用者安裝,或者正在使用。 物理唯一標識碼 即 ANDROID_ID   是手機系統的唯一號碼。 IMEI號是唯一識別手機的號碼。 IMSI號是與SIM唯一對應的號碼 優缺點: 1.ANDROID_

Java服務化系統線上應急技術攻關,你必須擁有的那些應用層指令碼Java虛擬機器命令

原文部落格:https://www.jianshu.com/p/46a120f9e5a3無論是技術開發人員還是架構設計人員都是在實踐中成長起來的,他們通過實踐進行總結,總結後把經驗昇華並再次應用到實踐中去,進一步提供生產效率。 本文介紹筆者在網際網路公司裡線上應急和技術攻關過程中積累的應用層指令碼和Java虛

Linux 網路裝置驅動開發 —— 網路裝置驅動基本原理框架

一、協議棧層次對比 二、Linux網路子系統     Linux網路子系統的頂部是系統呼叫介面層。它為使用者空間提供的應用程式提供了一種訪問核心網路子系統的方法(socket)。位於其下面是一個協議無關層,它提供一種通用的方法來使用傳輸層協議。然後是具體協議的實現,在Lin

POI 操作EXCEL解析EXCEL 自動識別xlsxlsx

這裡引用的jar包,一些jar是內部引用文科,有個是業務需求加入的的,引入的時候你們可以選擇性引入jar,在此不做剔除,我會在程式碼中附上引用。 對於大資料量的話excel來進行上傳操作視乎不如cvs效率高 初步測試excel八列簡單資料,在虛擬機器1.5G記憶體分配的情況

IIS中FTP設定使用者密碼 實現多使用者管理

  測試一下:這裡以IP為192.168.0.16為例,輸入FTP://192.168.0.16,回車,提示輸入使用者和密碼,輸入FTP01及其密碼,順利進入,這時進入的只能是FTP01虛擬目錄,可以上傳一個檔案,然後在伺服器上檢視一下是放置在哪個目錄下就可判定了。同樣,以FTP02登入,就進入了FTP02目

IOS開發之----常用函式常數

介紹一下Objective-c常用的函式,常數變數 算術函式 【算術函式】函式名 說明 int rand() 隨機數生成。 (例) srand(time(nil)); //隨機數初期化 int val = rand()P; //0~49之間的隨機數 int abs

Spring在代獲取bean的幾種方式

mxml get text spa 回調 獲取對象 ati -s null 獲取spring中bean的方式總結: 方法一:在初始化時保存ApplicationContext對象 1 ApplicationContext ac = new FileSystemXml

獲取Android裝置唯一識別裝置號|序號|UUID

如何獲取一個能唯一標識每臺Android裝置的序號? 這個問題有很多答案,但是他們中的大部分只在某些情況下有效。 根據測試: 所有的裝置都可以返回一個 TelephonyManager.getDeviceId() 所有的GSM裝置 (測試裝置都裝載有SIM卡) 可以