Ich versuche, den benutzerdefinierten Gerätenamen abzurufen, der in den Einstellungen festgelegt ist. Ich habe mehrere Möglichkeiten ausprobiert und bisher nichts.
Wenn es hilft oder weh tut, brauche ich es in einem BroadcastReceiver
Danke
Chris Whittle
Ich versuche, den benutzerdefinierten Gerätenamen abzurufen, der in den Einstellungen festgelegt ist. Ich habe mehrere Möglichkeiten ausprobiert und bisher nichts.
Wenn es hilft oder weh tut, brauche ich es in einem BroadcastReceiver
Danke
Das hat mir gebracht, was ich brauchte…
http://cmanios.wordpress.com/2012/05/09/bluetooth-adapter-device-name-and-mac-address-in-android/
BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
String deviceName = myDevice.getName();
Stellen Sie sicher, dass Sie hinzufügen
<uses-permission android:name="android.permission.BLUETOOTH"/>
zu deinem Manifest
Sie können Ihre eigene Antwort akzeptieren. Da es schwer gewesen wäre zu erraten, dass Sie in Ihrer Frage über Bluetooth gesprochen haben, habe ich dem Titel ein Tag und eine Erwähnung hinzugefügt.
– Chris Stratton
24. Mai ’13 um 2:08
In den Einstellungen steht auf keinem der Geräte, mit denen ich gearbeitet habe, etwas über Bluetooth. Ich bin durch Versuch und Irrtum gegangen, bis ich es gefunden habe.
– Chris Whittle
24. Mai ’13 um 12:10
Okay, ich habe meine Bearbeitung zurückgesetzt. Ihre Lösung zeigt jedoch, dass das Problem keine allgemeine Lösung ist – auf vielen Geräten ist das, was Sie versuchen, einfach überhaupt nicht möglich, da der Benutzer keine Möglichkeit hat, das Gerät zu benennen.
– Chris Stratton
24. Mai ’13 um 20:05
beachten Sie bitte. Da diese Antwort funktioniert, müssen Sie Ihr Gerät dennoch neu starten, wenn Sie Ihren Gerätenamen in Ihren Geräteeinstellungen aktualisieren, damit Sie den aktualisierten Namen erhalten.
– ralphgabb
20. Mai ’15 um 4:43
Da BT zwingend erforderlich ist, um das Telefon mit Google Apps zu versenden, können wir davon ausgehen, dass alle Geräte außer einigen wenigen wie Amazon Kindle BT haben.android.stackexchange.com/questions/24464/…
– Granat
19. Januar ’16 um 12:41
kakopappa
BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
String deviceName = myDevice.getName();
gibt Galaxy S5 zurück.
String deviceName = android.os.Build.MODEL;
returns SM-G900H.
Nach einiger Recherche fand ich den Gerätenamen in /data/data/com.android.providers.settings/databases/settings.db
Also, um es mit dem Shell-Befehl zu bekommen
shell@k3g:/ $ settings get system device_name
settings get system device_name
Milky Way
Java verwenden
String deviceName = Settings.System.getString(getContentResolver(), "device_name");
returns Milky Way
POC-Github-Projekt
https://github.com/kakopappa/getdevcicename
ausführliche Erklärung:
http://androidbridge.blogspot.com/2016/09/how-to-get-android-device-name-settings.html
Dies gab eine Null zurück 🙁
– Lavekush Agrawal
27. November ’17 um 8:04
Dies gibt zurück, wie der Benutzer sein Gerät in den Einstellungen benannt hat: settings get global device_name
und auf java Settings.Global.getString(getContentResolver(), "device_name");
– F0r3v3r-A-N00b
16. Oktober ’18 um 3:49
Dieser Shell-Befehl gibt auf Android P (Pixel) “null” zurück, obwohl der Wert im Abschnitt “Einstellungen” des Telefons festgelegt wurde.
– Richard Le Mesurier
5. Februar ’19 um 12:38
Der Settings.System
Methode gibt jetzt auch “null” zurück.
– Richard Le Mesurier
5. Februar ’19 um 12:44
vielen Dank für die Bereitstellung dieser Antwort, die die Frage so interpretiert, dass sie sich auf den vom Benutzer zugewiesenen Namen des Geräts bezieht, nicht auf den Modellnamen des Geräts. Wie andere bereits erwähnt haben, scheint keine der Methoden hier mit meinem Kindle (Android 5.1.1) zu funktionieren. Sie kehren unterschiedlich zurück null
, Fire
, oder KFDOWI
. Hm. Android-Dokumente sagen, dass device_name in API-Level 25 hinzugefügt wurde, was anscheinend Fire OS 6 bedeutet, also denke ich, dass dies sinnvoll ist. irgendwie. warum ist settings get global device_name
dann überhaupt etwas zurückgeben?
– orion elenzil
15. Mai ’19 um 22:25
Zusammenfassend lässt sich sagen, dass es keine einheitliche Methode zum Abrufen des benutzerdefinierten Gerätenamens gibt.
Es gibt jedoch zahlreiche Dienstprogramme, die Sie verwenden können, die auf verschiedenen Modellen und Herstellern funktionieren:
Settings.System.getString(getContentResolver(), “bluetooth_name”);
(Dokumente)Settings.Secure.getString(getContentResolver(), “bluetooth_name”);
(Dokumente)BluetoothAdapter.getDefaultAdapter().getName();
(Dokumente)Settings.System.getString(getContentResolver(), “device_name”);
(Dokumente)Settings.Secure.getString(getContentResolver(), “lock_screen_owner_info”);
(Dokumente)1, 2 und 3 scheinen auf den Geräten, die mein Kollege getestet hat, am zuverlässigsten zu sein. Hier seine vollständige Analyse:
Quelle: https://medium.com/@pribble88/how-to-get-an-android-device-nickname-4b4700b3068c
Leider funktioniert keine dieser Methoden auf dem Pixel 2 XL-Emulator (API 28). Sie alle geben null zurück!
– t-gao
14. Mai ’19 um 9:47
Neelam Verma
Folgende Werke für mich
String deviceName = Settings.Global.getString(<Context>.getContentResolver(), Settings.Global.DEVICE_NAME);
Dieser funktionierte für mich auf API 25:
Settings.Secure.getString(getContentResolver(), "bluetooth_name");
So finden Sie es… (Ersetzen Sie einfach den Namen Ihres Geräts)
$ adb shell
$ settings list system | grep "<device_name>"
$ settings list secure | grep "<device_name>"
In meiner Version von ADB (1.0.36) in macOS hat der Einstellungsbefehl kein a list
Option, nur get
und put
.
– jk7
15. Feb. 17 um 19:15
Korrektur: Die settings
Shell-Befehl auf meinem billigen LG-Trafone hat das nicht list
Möglichkeit.
– jk7
15. Februar ’17 um 19:37
Nur um eine weitere Variante hinzuzufügen, mein Samsung J2 hat den Gerätenamen in den globalen Einstellungen. settings list global | grep "<device_name>"
– Seit
25. März ’20 um 20:33
ArturSkowronski
Benutzen:
String deviceName = android.os.Build.MODEL;
In meiner Version von ADB (1.0.36) in macOS hat der Einstellungsbefehl kein a list
Option, nur get
und put
.
– jk7
15. Feb. 17 um 19:15
Korrektur: Die settings
Shell-Befehl auf meinem billigen LG-Trafone hat das nicht list
Möglichkeit.
– jk7
15. Februar ’17 um 19:37
Nur um eine weitere Variante hinzuzufügen, mein Samsung J2 hat den Gerätenamen in den globalen Einstellungen. settings list global | grep "<device_name>"
– Seit
25. März ’20 um 20:33
Schpand
Keine der oben genannten Methoden funktioniert für alle Geräte. Wenn Sie einen robusten Weg suchen, um zu erhalten benutzerdefinierter Gerätename auf fast allen Android-Geräten (einschließlich TV) und die keine Berechtigungen benötigen, verwenden Sie dies
String userDeviceName = Settings.Global.getString(getContentResolver(), Settings.Global.DEVICE_NAME);
if(userDeviceName == null)
userDeviceName = Settings.Secure.getString(getContentResolver(), "bluetooth_name");
.