2012-05-10 45 views
0

我試圖更改當前正在運行我的程序的Android設備的名稱,因爲設備的名稱將包含與其他手機通信時相關的信息。手機的名稱會隨着手機掃描其他手機並計算信息而不斷更改。有關如何在Java代碼中更改手機名稱的任何想法?我無法想象它不只是幾行代碼,但我找不到任何東西。 在此先感謝。在代碼中更改Android設備名稱

+0

可能重複[更改Android的藍牙設備名稱](http://stackoverflow.com/questions/8377558/change-the-android-bluetooth - 設備名稱) –

回答

1

這很容易,得到一個藍牙適配器的實例(因爲您可以設置的唯一名稱是我認爲的藍牙名稱),它指的是本地設備並在其上調用setName("newName");

BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter(); 
       myDevice.setName("new name"); 

引用文檔:

有效藍牙名稱是一個最大的248個字節使用UTF-8編碼,儘管許多遠程設備可以只顯示前40個字符,並且一些可以是僅限於20個。

所以要注意您設置的設備名稱。哦,在另一個說明中,如果設備藍牙關閉,則不能更改名稱。所以,檢查之後實際的代碼會是這樣以下的行:

BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter(); 
if(myDevice.getState() == BluetoothAdapter.STATE_ON){ 
    myDevice.setName("new name"); 
} 

必須注意的: 如果你要測試這個模擬器上,小心,有沒有藍牙功能的模擬器和因此getDefaultAdapter()方法返回空,導致NullPointerException :)

+0

是的,我忘了提及它是藍牙,但這似乎是正確的。稍後當我有機會時,我會試一試,並告訴你是否正確。非常感謝。 – johns4ta

+0

@ user1153018不要忘記+1並接受,如果這是你以後的事情。檢查完整代碼的更新版本,包括狀態檢查以確保適配器處於打開狀態。 –

+0

我會接受它,如果它是答案,我還沒有足夠高的代表+1你的答案。 – johns4ta