我正在尝试获取在设置中设置的用户定义设备名称。我已经尝试了几种选择,到目前为止还没有。
如果它有帮助或伤害我需要它在BroadcastReceiver
由于
答案 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)
总而言之,没有一种一致的方法来检索用户自定义的设备名称。
但是,您可以使用许多实用程序,这些实用程序可以在不同的型号和制造商上使用:
Settings.System.getString(getContentResolver(), “bluetooth_name”);
(docs)Settings.Secure.getString(getContentResolver(), “bluetooth_name”);
(docs)BluetoothAdapter.getDefaultAdapter().getName();
(docs)Settings.System.getString(getContentResolver(), “device_name”);
(docs)Settings.Secure.getString(getContentResolver(), “lock_screen_owner_info”);
(docs)1、2和3在我的同事测试过的设备上似乎是最可靠的。这是他的完整分析:
来源: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");