日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

得到Android设备的唯一id

發(fā)布時間:2025/4/17 Android 69 豆豆
生活随笔 收集整理的這篇文章主要介紹了 得到Android设备的唯一id 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

權限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

-----------------------------------------------------

主Activity類

package com.sl.getdeviceid;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState)?
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ApplicationContext.initialize(this);
Device.getDeviceId(this);
}
}

-----------------------------------------------------

保存應用程序上下文

package com.sl.getdeviceid;

import android.content.Context;

public class ApplicationContext
{
private static Context contextSingleton;

public static void initialize(Context context)
{
contextSingleton = context;
}

public static Context getContext()
{
return contextSingleton;
}

}

-----------------------------------------------------

Device類

package com.sl.getdeviceid;


import java.io.File;
import java.io.IOException;


import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;


public class Device?
{
public static String getDeviceId(Context context)
{
String deviceId = getDeviceIdFromFile();
if(TextUtils.isEmpty(deviceId))
{
deviceId = getDeviceIdFromDeviceInfo(context);
setDeviceIdToFile(context, deviceId);
}

return deviceId;
}

public static String getDeviceIdFromFile()
{
String deviceId = "";

try?
{
File memoryFile = new File(FileUtil.DIR.CACHE_PATH_MEMORY_DIR_DEVICEID);
File sdcardFile = new File(FileUtil.DIR.CACHE_PATH_SDCARD_DIR_DEVICEID);

if(memoryFile.exists())
{
return deviceId = FileUtil.read(FileUtil.DIR.CACHE_PATH_MEMORY_DIR_DEVICEID);
}

if(sdcardFile.exists())
{
return deviceId = FileUtil.read(FileUtil.DIR.CACHE_PATH_SDCARD_DIR_DEVICEID);
}
}?
catch (Exception e)?
{
Log.e("Device", "getDeviceIdFromFile: " + e.toString());
}

return deviceId;
}


public static String getDeviceIdFromDeviceInfo(Context context)?
{
StringBuilder deviceId = new StringBuilder();


try?
{
WifiManager wifi = (WifiManager) context.getSystemService("wifi");
WifiInfo info = wifi.getConnectionInfo();
String wifiMac = info.getMacAddress();


if (!TextUtils.isEmpty(wifiMac))?
{
Log.e("Device", "wifiMac: " + wifiMac);
deviceId.append(wifiMac).append('\002');
}


TelephonyManager tm = (TelephonyManager) context.getSystemService("phone");
String imei = tm.getDeviceId();
if (!TextUtils.isEmpty(imei))
{
Log.e("Device", "imei: " + imei);
deviceId.append(imei).append('\002');
}


String sn = tm.getSimSerialNumber();
if (!TextUtils.isEmpty(sn))?
{
Log.e("Device", "sn: " + sn);
deviceId.append(sn);
}


}?
catch (Exception e)
{
Log.e("Device", e.toString());
}

Log.e("Device", "deviceId.toString(): " + deviceId.toString());

return deviceId.toString();
}

public static void setDeviceIdToFile(Context context, String deviceId)
{
if (!FileUtil.isExistDir(FileUtil.DIR.CACHE_PATH_MEMORY_DIR))?
{
? ?FileUtil.createMemoryDir(FileUtil.DIR.CACHE_PATH_MEMORY_DIR);
}
? ?
if (!FileUtil.isExistDir(FileUtil.DIR.CACHE_PATH_SDCARD_DIR))?
{
? ?FileUtil.createSDCardDir(FileUtil.DIR.CACHE_PATH_SDCARD_DIR);
}
??
File memoryFile = new File(FileUtil.DIR.CACHE_PATH_MEMORY_DIR_DEVICEID);
File sdcardFile = new File(FileUtil.DIR.CACHE_PATH_SDCARD_DIR_DEVICEID);
??
if (!memoryFile.exists())
{
? ?try?
? ?{
? ? memoryFile.createNewFile();
? ?}?
? ?catch (IOException e)?
? ?{
? ? Log.e("Device", e.toString());
? ?}
? ?
? ?FileUtil.writeSingleLine(memoryFile, deviceId);
}

? ? if (!sdcardFile.exists())?
? ? {
? ? try?
? ? {
? ? sdcardFile.createNewFile();
? ? }?
? ? catch (IOException e)?
? ? {
? ? Log.e("Device", e.toString());
? ? }
? ?
? ? FileUtil.writeSingleLine(sdcardFile, deviceId);
? ? }
}

}

-----------------------------------------------------

文件類

package com.sl.getdeviceid;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;


import org.apache.http.util.EncodingUtils;


import android.content.Context;
import android.os.Environment;
import android.util.Log;


public class FileUtil?
{
public static boolean isAvailable()
{
? ?return Environment.getExternalStorageState().equals("mounted");
}

public static String getSDcardPath()
{
? ?return Environment.getExternalStorageDirectory().getAbsolutePath();
}

public static String getMemoryFilesPath(Context context)
{
? ?if (context == null)?
? ?{
? ? ?Log.e("FileUtil", "context is null");
? ? ?return "";
? ?}
? ?
? ?return context.getFilesDir().getAbsolutePath();
}
?
public static class DIR
{
public static String MEMORY_DIR = getMemoryFilesPath(ApplicationContext.getContext());
? ?public static String SDCARD_DIR = getSDcardPath();
? ?public static String CACHE_PATH_MEMORY_DIR = MEMORY_DIR + File.separator + "KODCACHE";
? ?public static String CACHE_PATH_SDCARD_DIR = SDCARD_DIR + File.separator + "KODCACHE";
public static String CACHE_PATH_MEMORY_DIR_DEVICEID = MEMORY_DIR + File.separator + "KODCACHE" + File.separator + "DEVICEID.log";
public static String CACHE_PATH_SDCARD_DIR_DEVICEID = SDCARD_DIR + File.separator + "KODCACHE" + File.separator + "DEVICEID.log";
}

public static String read(String fileName)
{
String res = "";
? ?File file = new File(fileName);
? ?
? ?try
? ?{
? ? ?FileInputStream fis = new FileInputStream(file);
? ? ?int length = fis.available();
? ? ?byte[] buffer = new byte[length];
? ? ?fis.read(buffer);
? ? ?res = EncodingUtils.getString(buffer, "UTF-8");
? ? ?fis.close();
? ?}?
? ?catch (IOException e)
? ?{
? ? Log.e("FileUtil", e.toString());
? ?}
? ?return res;
}

public static boolean isExistDir(String path)
{
? ?File dir = new File(path);


? ?return (dir.exists()) && (dir.isDirectory());
}

public static boolean createMemoryDir(String memoryPath)
{
? ?File file = new File(memoryPath);
? ?boolean mkOk = false;
? ?
? ?if (!file.isDirectory())?
? ?{
? ? ?mkOk = file.mkdirs();
? ? ?
? ? ?if (!mkOk)?
? ? ?{
? ? ? ?mkOk = file.mkdirs();
? ? ?}
? ?}
? ?
? ?return mkOk;
}

public static boolean createSDCardDir(String SDCardPath)
{
? ?boolean mkOk = false;
? ?
? ?if (isAvailable())
? ?{
? ? ?File file = new File(SDCardPath);
? ? ?
? ? ?if (!file.isDirectory())
? ? ?{
? ? ? ?mkOk = file.mkdirs();
? ? ? ?
? ? ? ?if (!mkOk)?
? ? ? ?{
? ? ? ? ?mkOk = file.mkdirs();
? ? ? ?}
? ? ?}
? ?}
? ?
? ?return mkOk;
}

public static void writeSingleLine(File file, String content)
{
? ?FileWriter fw = null;
? ?
? ?try?
? ?{
? ? ?fw = new FileWriter(file, true);
? ? ?fw.write(content);
? ?}?
? ?catch (IOException e)?
? ?{
? ? Log.e("FileUtil", e.toString());
? ?}?
? ?finally?
? ?{
? ?if (fw != null)
? ?{
? ? try?
? ?{
? ? ? ?fw.close();
? ?}
? ?catch (IOException e)?
? ?{
? ? ? Log.e("FileUtil", e.toString());
? ?}
? ?}
? ?}
}


}


總結

以上是生活随笔為你收集整理的得到Android设备的唯一id的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。