1

내 안드로이드 응용 프로그램에서 BLE 장치가 안드로이드 전화에 연결되면 BLE 연결이 성공적으로 작동합니다. 연결된 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 (장치 이름) 아래의 샘플 코드 메서드는 항상 거짓을 반환합니다.

는 일부 연구 후에 나는 솔루션 아래의 발견 당신은 keyfobdemo.c 내부 KeyFobApp_Init()에 아래의 코드를 추가하여 장치 이름의 쓰기 권한을 추가 CC2541의 열쇠 고리의 펌웨어를 수정해야

:

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

내 권한은 어디에 추가해야합니까?

아무도 내게이 persmissions를 추가하는 방법을 말해 줄 수 있습니까?

미리 감사드립니다.

답변

0

안드로이드에서 그렇게 할 방법이 없습니다! BLE 펌웨어를 변경하지 않는 한!

가능한 해결책, BLE 장치에 연결하면 장치에 일부 구성 명령을 보내 장치 이름을 변경할 수 있습니다.

3

이름에서 알 수 있듯이 keyfobdemo.c는 .c 파일이므로 TI는 KeyFobDemo 작업 공간에 이러한 사용 권한을 추가해야한다는 것을 알려주므로 이름을 변경하기 위해 CC2541 키트를 프로그래밍해야합니다. Android에서는 할 수 없습니다.

당신이 할 수있는 일은 다음과 같습니다 http://www.ti.com/tool/ble-stack

그런 다음 스택에 오픈 프로젝트는 상상력 \ 열쇠 고리 \ CC2541DB \ KeyFobDemo.eww 파일을 \ :

텍사스 인스트루먼트의 웹 사이트에서 BLE 스택을 다운로드합니다.

CC2540 키트 프로그래밍에는 IAR Embedded Workbench라는 IDE가 필요합니다. 30 일 평가판을 다운로드하여 액세스 할 수 있습니다. http://www.iar.com/Products/IAR-Embedded-Workbench/8051/

그런 다음 프로젝트를 열고 APP 폴더에서 keyfobdemo.c 파일을 찾으십시오. 200-213 줄에는 deviceName []이라는 이름의 char 배열이 있는데 실제로 광고 이름을 "Keyfobdemo"로 정의합니다. 올바른 16 진수 값과 배열의 길이로 원하는 이름으로 변경하면됩니다. 236 행에서 attDeviceName [] 배열도 변경해야합니다.이 매개 변수는 연결된 상태에있는 장치의 이름을 정의하기 때문에 attDeviceName [] 배열도 변경해야합니다.

+0

감사합니다. – sandeepmaaram

관련 문제