你如何在android中获得用户定义的“设备名称”?

时间:2013-05-23 02:16:33

标签: java android

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

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

由于

7 个答案:

答案 0 :(得分:29)

这让我得到了我需要的东西...... 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"/>

到你的清单

答案 1 :(得分:10)

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

答案 2 :(得分:5)

这个在API 25上为我工作:

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

以下是如何找到它...(只需替换设备名称)

$ adb shell
$ settings list system | grep "<device_name>"
$ settings list secure | grep "<device_name>"

答案 3 :(得分:3)

使用:

String deviceName = android.os.Build.MODEL;

答案 4 :(得分:2)

以下对我有用的

字符串deviceName = Settings.Global.getString(.getContentResolver(),Settings.Global.DEVICE_NAME);

答案 5 :(得分:2)

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

但是,您可以使用许多实用程序,这些实用程序可以在不同的型号和制造商上使用:

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

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

user device name table of results

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

答案 6 :(得分:0)

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

String userDeviceName = Settings.Global.getString(getContentResolver(), Settings.Global.DEVICE_NAME);
if(userDeviceName == null)
    userDeviceName = Settings.Secure.getString(getContentResolver(), "bluetooth_name");