38

我正在尝试获取设置中设置的用户定义设备名称。我已经尝试了几种选择,但到目前为止没有。

如果它有帮助或有伤害,我在 BroadcastReceiver 中需要它

谢谢

4

7 回答 7

31

这让我得到了我需要的东西...... http://cmanios.wordpress.com/2012/05/09/bluetooth-adapter-device-name-and-mac-address-in-android/

BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
    String deviceName = myDevice.getName();

确保添加

<uses-permission android:name="android.permission.BLUETOOTH"/>

到你的清单

于 2013-05-24T01:42:35.803 回答
13
BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
String deviceName = myDevice.getName();

返回 Galaxy S5。

String deviceName = android.os.Build.MODEL;
returns SM-G900H.

经过一番研究,我在 /data/data/com.android.providers.settings/databases/settings.db 中找到了 device_name

所以,要使用 shell 命令来获取它

shell@k3g:/ $ settings get system device_name
settings get system device_name
Milky Way

使用java

String deviceName = Settings.System.getString(getContentResolver(), "device_name");
returns Milky Way

POC github 项目 https://github.com/kakopappa/getdevcicename

详细解释: http ://androidbridge.blogspot.com/2016/09/how-to-get-android-device-name-settings.html

于 2016-09-27T03:57:19.240 回答
13

总之,没有单一一致的方法来检索用户自定义的设备名称。

但是,您可以使用许多适用于不同型号和制造商的实用程序:

  1. Settings.System.getString(getContentResolver(), “bluetooth_name”);文档
  2. Settings.Secure.getString(getContentResolver(), “bluetooth_name”);文档
  3. BluetoothAdapter.getDefaultAdapter().getName();文档
  4. Settings.System.getString(getContentResolver(), “device_name”);文档
  5. Settings.Secure.getString(getContentResolver(), “lock_screen_owner_info”);文档

在我同事测试的设备上,1、2 和 3 似乎是最可靠的。以下是他的完整分析:

用户设备名称结果表

来源:https ://medium.com/@pribble88/how-to-get-an-android-device-nickname-4b4700b3068c

于 2019-05-07T14:30:23.833 回答
9

以下对我有用

String deviceName = Settings.Global.getString(<Context>.getContentResolver(), Settings.Global.DEVICE_NAME);
于 2018-07-20T14:59:04.030 回答
6

这个在 API 25 上为我工作:

Settings.Secure.getString(getContentResolver(), "bluetooth_name");

这是找到它的方法...(只需替换您的设备名称)

$ adb shell
$ settings list system | grep "<device_name>"
$ settings list secure | grep "<device_name>"
于 2017-01-26T15:46:59.560 回答
3

利用:

String deviceName = android.os.Build.MODEL;
于 2013-05-23T02:19:50.157 回答
1

上述方法均不适用于所有设备。如果您想要一种强大的方法来在几乎所有 Android 设备(包括电视)上获取用户定义的设备名称并且不需要任何权限,请使用此

String userDeviceName = Settings.Global.getString(getContentResolver(), Settings.Global.DEVICE_NAME);
if(userDeviceName == null)
    userDeviceName = Settings.Secure.getString(getContentResolver(), "bluetooth_name");
于 2021-03-16T08:32:05.587 回答