2011-03-17 66 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。为了节省电池或出于安全原因。所以这不是可靠的,我会说。