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

Chr*_*tle 28 java android

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

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

谢谢

Chr*_*tle 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();
Run Code Online (Sandbox Code Playgroud)

确保添加

<uses-permission android:name="android.permission.BLUETOOTH"/>
Run Code Online (Sandbox Code Playgroud)

到你的清单

  • 在设置中,它与我使用的任何一种设备上的蓝牙都没有任何关系。我反复尝试,直到找到它。 (2认同)

Dan*_*n J 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


kak*_*ppa 11

BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
String deviceName = myDevice.getName();
Run Code Online (Sandbox Code Playgroud)

返回Galaxy S5.

String deviceName = android.os.Build.MODEL;
returns SM-G900H.
Run Code Online (Sandbox Code Playgroud)

经过一些研究后,我在/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
Run Code Online (Sandbox Code Playgroud)

用java

String deviceName = Settings.System.getString(getContentResolver(), "device_name");
returns Milky Way
Run Code Online (Sandbox Code Playgroud)

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

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

  • 这将返回用户在设置中命名他的设备的内容:`settings get global device_name` 和 java `Settings.Global.getString(getContentResolver(), "device_name");` (2认同)

Nee*_*rma 9

以下对我有用

String deviceName = Settings.Global.getString(<Context>.getContentResolver(), Settings.Global.DEVICE_NAME);
Run Code Online (Sandbox Code Playgroud)


The*_*mer 5

这个在API 25上为我工作:

Settings.Secure.getString(getContentResolver(), "bluetooth_name");
Run Code Online (Sandbox Code Playgroud)

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

$ adb shell
$ settings list system | grep "<device_name>"
$ settings list secure | grep "<device_name>"
Run Code Online (Sandbox Code Playgroud)


Art*_*ski 4

使用:

String deviceName = android.os.Build.MODEL;
Run Code Online (Sandbox Code Playgroud)

  • 请注意,即使拥有"设置 - >关于 - >设备名称"也是供应商自定义,而不是Android本身的一部分. (3认同)