2011-03-17 62 views
3

我想要在決定Android中的哪個API可訪問字段與iPhone的「設備名稱」(它將用作傳遞給服務器的非必要登錄數據)的最佳等價方面進行輸入。通過設備名稱,我不是指「型號」,或任何與硬件或軟件相關的標識符,但更多的與所有者有關。 查看How do you get an iPhone's device name正是我所指的。Android「設備名稱」相當於

作爲另一個例子,當面對黑莓中的相同問題時,決定所有者名稱是最好的。 (請參見Get Blackberry Owner details (eg name/number) through API中的答案)

到目前爲止,它看起來像我最喜歡的android相當於使用AccountManager來返回某人的谷歌帳戶電子郵件;見How can you get an Android user's email address?。儘管這在我看來似乎是一個相當粗略的近似值;並且需要爲應用程序添加另一個完整的權限才能用於某些非必要的登錄數據。有誰知道更好的等價物,以及如何抓住它?

非常感謝!

回答

3

如果你看設置 - >無線&網絡設置 - >藍牙設置有一個選項來設置設備名稱。如果設備名稱尚未設置,那麼我認爲它使用個人帳戶。您可以通過BluetoothDevice.getName()方法訪問它。不知道這是否有幫助。

+0

看起來像一個潛在的候選人 - 我有兩個關於它的問題:1. BluetoothDevice.getName()不是一個靜態方法,在api中似乎是獲取遠程設備的名稱 - 如何獲得一個代表自己設備的BluetoothDevice對象? 2.如果設備名稱沒有設置,它會引用什麼「帳戶」? – Cephron 2011-03-17 16:10:17

+1

是的,因爲它不是一個靜態的方法,你將需要設置等於一個服務。我現在沒有任何我的代碼可用,但我想我實際上使用了BluetoothAdapter類,這將允許您獲得本地藍牙適配器的句柄。試試這個... BluetoothAdapter bt = BluetoothAdapter.getDefaultAdapter(); String name = bt.getName(); – DRiFTy 2011-03-17 16:22:27

+0

哦,得到它的#1:使用BluetoothAdapter.getDefaultAdapter.getName();但是它返回空 - 我想這意味着我沒有它使用的那種帳戶。 無論如何,我也喜歡你的答案,因爲它似乎可以同時適用於手機和平板電腦。 – Cephron 2011-03-17 16:24:52

0

如果用戶關閉了BT,例如BluetoothAdapter.getDefaultAdapter.getName()也返回null。爲了節省電池或出於安全原因。所以這不是可靠的,我會說。