Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-12-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Obtener el nombre del dispositivo Androoid.

Hola. Compañeros de "fatigas".

Actualmente me encuentro muy "fatigado" intentando conseguir averiguar (por software) el nombre del dispositivo Android. El modelo, en versiones antiguas, que no permitían personalizar el nombre, coincidía con el nombre mostrado por bluetooth. En las versiones más modernas existe la posibilidad de personalizar el nombre que se muestra por bluetooth y este nombre es lo que pretendo conseguir.

Para obtener el modelo estoy utilizando este código (por si a alguien le interesa):

Código Delphi [-]
uses
.....AndroidApi.JNI.OS, AndroidApi.Helpers;
....
var
....ModelTelef : String;
......
 ModelTelef := JStringToString(TJBuild.JavaClass.MODEL);
....

¿Alguien sabe como conseguir (y si fuera posible modificar) el nombre personalizado del dispositivo?

Gracias anticipadas por soportar mi torpeza y por leerme.

Saludos a todos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #2  
Antiguo 19-12-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.549
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por jhonalone Ver Mensaje
En las versiones más modernas existe la posibilidad de personalizar el nombre que se muestra por bluetooth y este nombre es lo que pretendo conseguir.
Si lo que estás intentando es obtener el nombre que el dispositivo tiene definido para el acceso a bluetooth, deberás acceder por las clases que hay específicas de Bluetotth.
En concreto, con delphi viene la unit Androidapi.JNI.Bluetooth.pas.


En esta unit está definido el mapeo sobre la clase de Android BlueToothAdapter.
https://developer.android.com/refere...thAdapter.html

Si miras la documentación verás que entre los métodos que trae, hay uno llamado getName.
https://developer.android.com/refere...html#getName()

Así que un código como este te debería devolver el nombre y algunas cosas más...

Código Delphi [-]
uses
  Androidapi.Helpers,
  Androidapi.JNIBridge,
  AndroidApi.Jni.JavaTypes,
  AndroidApi.Jni.App,
  Androidapi.JNI.Bluetooth;
  
...


var
  adapter:JBluetoothAdapter;
begin
  // acceso al servicio
  Adapter := TJBluetoothAdapter.JavaClass.getDefaultAdapter;
  // Obtener datos
  mmLog.Lines.Add('Class: ' + JStringToString(Adapter.getClass.getName));
  mmLog.Lines.Add('Name: ' + JStringToString(Adapter.getName));
  mmLog.Lines.Add('ScanMode: ' + IntToStr(Adapter.getScanMode));
  mmLog.Lines.Add('State: ' + IntToStr(Adapter.getState));
  mmLog.Lines.Add('Adress: ' + JStringToString(Adapter.getAddress));

El resultado es este:


En esa misma clase (ya no lo he probado) también tienes el método setName.

NOTA: Tendrás que activar los permisos para Bluetooth ( y tal vez el bluetooth admin).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 19-12-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Muchas gracias, Neftalí.

Es que he comprobado que el nombre que envía por BlueTooth coincide con el nombre que has asignado al dispositivo.

Voy a probarlo y te cuento.

Un Saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 19-12-2016 a las 17:35:08.
Responder Con Cita
  #4  
Antiguo 19-12-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
A ver, Neftalí.

Estoy probando con el código que me dejaste. Pero algo me debe faltar...

Utilizo este programa de prueba:

Código Delphi [-]
unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, AndroidApi.JNI.GraphicsContentViewText, AndroidApi.JNI.OS, AndroidApi.Helpers, AndroidApi.JNI.Net,
  AndroidApi.JNI.JavaTypes, AndroidApi.JNIBridge, AndroidApi.JNI.Provider, AndroidApi.JNI.Telephony,
  FMX.PhoneDialer, FMX.PhoneDialer.Android, FMX.StdCtrls,
  FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, System.Bluetooth,
  System.Bluetooth.Components, AndroidApi.Jni.App,
  Androidapi.JNI.Bluetooth;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Bluetooth1: TBluetooth;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Adapter:JBluetoothAdapter;
implementation

{$R *.fmx}



procedure TForm1.Button1Click(Sender: TObject);
begin
 Memo1.Lines.Add('Class: ' + JStringToString(Adapter.getClass.getName));
  Memo1.Lines.Add('Name: ' + JStringToString(Adapter.getName));
  Memo1.Lines.Add('ScanMode: ' + IntToStr(Adapter.getScanMode));
  Memo1.Lines.Add('State: ' + IntToStr(Adapter.getState));
  Memo1.Lines.Add('Adress: ' + JStringToString(Adapter.getAddress));
{Memo1.Lines.Add(JStringToString(TJBuild.JavaClass.MODEL));//Model name
Memo1.Lines.Add(JStringToString(TJBuild_VERSION.JavaClass.RELEASE));//Os Version
//Memo1.Lines.Add(JStringToString(TJBuild.JavaClass.HOST));
// Memo1.Lines.Add(JStringToString(TJBuild.JavaClass.PRODUCT));
// Memo1.Lines.Add(JStringToString(TJBuild.JavaClass.DISPLAY));
// Memo1.Lines.Add(BluetoothLE1.GetCurrentAdapter.AdapterName);
}
end;

end.
Te cuento:
1.- Verás que hay muchas cosas inhabilitadas, porque es el mismo programa que utilizaba para probar el Modelo del dispositivo. También sobran muchas unidades en el uses.

2.- Si inhabilito el componente Bluetooth1, queda la pantalla en negro y se cierra el programa.
3.- Si habilito el componente Bluetoooth1, tengo dos posibilidades:
a) Con la propiedad Enabled := False. Al pulsar el Button1 me da "Access violation..."
b) Con la propiedad Enabled := True. Hace lo mismo que en el caso 2. Cierra el programa.

Mira si tú ves lo que me falta y me puedes ayudar. Por favor.

Gracias y un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #5  
Antiguo 19-12-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.549
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Elimina el componente. No hace falta.
El código que te he pasado utiliza las clases directamente.

El código funciona, porque la imagen que te he pasado es mi teléfono (Android, Xiaomi MI5).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 19-12-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 549
Poder: 18
jhonalone Va por buen camino
Lo siento, Neftalí.
He eliminado el componente BlueTooth y no me funciona, ni en el J5 (Android MashMallow 6.0.1) que ne han regalado de 2 mano, ni en el S3 mini (Android 4.1.2) que usaba antes.
Algo estoy haciendo mal, seguro. Pero no sé que. Voy a seguir probando, pero el proyecto es tan pequeño...
que no sé por donde empezar.
Un Saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener informacion del dispositivo AgustinOrtu Desarrollo en Delphi para Android 1 26-09-2015 11:30:18
Obtener el nombre del dispositivo goduquez FireMonkey 0 09-12-2014 05:00:56
Obtener ID de Dispositivo USB JerS Varios 0 10-11-2010 01:36:39
Obtener el nombre de la pc jocey Varios 3 02-09-2008 16:24:37
¿Averiguar Nombre Dispositivo CD/DVD ROM? DarkDudae Varios 2 29-10-2006 03:17:17


La franja horaria es GMT +2. Ahora son las 00:52:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi