1

В моем приложении для Android соединение BLE работает успешно, как только устройство BLE подключено к телефону Android. Как программно изменить имя подключенного устройства BLE? Пример кода, как показано нижеКак изменить подключенное имя устройства BLE на Android программно?

private static final UUID Device_Name_UUID = UUID.fromString("00002a00-0000-1000-8000-00805f9b34fb"); 
private static final UUID Write_UUID = UUID.fromString("00001800-0000-1000-8000-00805f9b34fb"); 

     public void Device_Name(){ 
      BluetoothGattService Name_Service = mBluetoothGatt.getService(Write_UUID); 
      if(Name_Service == null) { 
       Log.d(TAG, "Name_Service service not found!"); 
       return; 
      } 

      BluetoothGattCharacteristic DeviceName = Name_Service.getCharacteristic(Device_Name_UUID); 
      if(DeviceName == null) { 
       Log.d(TAG, "DeviceName charateristic not found!"); 
       return; 
      } 
     } 
     Log.v(TAG, "readCharacteristic(DeviceName) = " + mBluetoothGatt.readCharacteristic(DeviceName)); 
     String i = "123";  
     DeviceName.setValue(i); 
     Log.v(TAG, "writeCharacteristic(DeviceName) = " + mBluetoothGatt.writeCharacteristic(DeviceName)); 
     Log.v(TAG, "writeCharacteristic(DeviceName) = " + mBluetoothGatt.writeCharacteristic(DeviceName)); 

Здесь mBluetoothGatt.writeCharacteristic (DEVICENAME); способ всегда возвращает false.

После некоторых исследований я нашел решение ниже

Вам нужно изменить прошивку CC2541 брелока, чтобы добавить разрешение на запись имени устройства путем добавления кода ниже в KeyFobApp_Init() внутри keyfobdemo.c:

uint8 devNamePermission = GATT_PERMIT_READ|GATT_PERMIT_WRITE; 
GGS_SetParameter(GGS_W_PERMIT_DEVICE_NAME_ATT, sizeof (uint8), &devNamePermission); 

Теперь, мой вопрос: где мы должны добавить эти разрешения?

Возможно, кто-нибудь скажет мне, как добавить эти пения?

Заранее благодарен

ответ

0

Невозможно сделать это на Android! если вы не измените прошивку BLE!

Возможное решение, после подключения к устройству BLE вы можете отправить некоторую команду конфигурации на свое устройство, чтобы изменить имя устройства.

3

Как указано в названии: keyfobdemo.c - это .c файл, поэтому TI сообщает вам, что вам нужно добавить эти разрешения в рабочее пространство KeyFobDemo, поэтому вам нужно запрограммировать комплект CC2541, чтобы изменить имя. Вы не можете сделать это в Android.

Все, что вам нужно сделать, это:

Скачать BLE стек с сайта Texas Instruments: http://www.ti.com/tool/ble-stack

Затем в стеке, открытые проекты \ BLE файл \ БРЕЛОКА \ CC2541DB \ KeyFobDemo.eww.

Для программирования набора CC2540 требуется IDE с именем IAR Embedded Workbench. Вы можете скачать его и получить с помощью 30-дневной пробной версии: http://www.iar.com/Products/IAR-Embedded-Workbench/8051/

Затем откройте проект и найдите файл keyfobdemo.c в папке APP. Из строки 200-213 имеется массив символов с именем deviceName [], который фактически определяет рекламное имя как «Keyfobdemo». Вам просто нужно изменить это на нужное имя с правильными шестнадцатеричными значениями и длиной массива. Затем в строке 236 вам также необходимо изменить массив attDeviceName [], так как этот параметр определяет имя вашего устройства, когда оно находится в состоянии соединения.

+0

спасибо, Позвольте мне попробовать – sandeepmaaram

Смежные вопросы