最近有一个实现WIFI热点默认名称为公司简称加WIFI MAC地址的需求,网上查询了一些方法没有实现需求,于是想WIFI MAC地址是写到NVRAM里的,通过读取NVRAM的的WIFI MAC地址应该没有问题。方法如下:
在frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java里的getDefaultApConfiguration()函数里
config.SSID = "CompanyName-"+readData();
public String readData() {
IBinder binder = ServiceManager.getService("NvRAMAgent");
NvRAMAgent agent = NvRAMAgent.Stub.asInterface(binder);
byte[] buff = null;
String[] macAddress=new String[6];
try {
buff = agent.readFile(53);// read buffer from nvram
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(int i=0;i<buff.length;i++){
System.out.println("i:"+i+" "+Integer.toHexString(buff[i]));
}
macAddress[0]