안드로이드 ble 전문가 님들에게 질문 합니다


mAdvSettings = new AdvertiseSettings.Builder()
        .setAdvertiseMode( AdvertiseSettings.ADVERTISE_MODE_LOW_LATENCY )
        .setTxPowerLevel( AdvertiseSettings.ADVERTISE_TX_POWER_HIGH )
        .setConnectable( false )
        .build();

ParcelUuid pUuid = new ParcelUuid( UUID.fromString( "CDB7950D-73F1-4D4D-8E47-C090502DBD63"));
mAdvData = new AdvertiseData.Builder()
        .addServiceUuid( pUuid )
        .addServiceData( pUuid, "aa".getBytes( Charset.forName( "UTF-8" ) ) )
        .build();

mAdvScanResponse = new AdvertiseData.Builder()
    .setIncludeDeviceName(true)
    .build();

....

  mAdvertiser = mBluetoothAdapter.getBluetoothLeAdvertiser();
  mAdvertiser.startAdvertising(mAdvSettings, mAdvData, mAdvScanResponse, mAdvCallback);

안드로이드 코드에서 위 와 같이 advertsing 메세지를 만들어 beacon 신호를 만들고자합니다 그래서 setConnectable 을 false로 주어 non-connectable 상태로 만드려고했는데

nordic 에서 판매하는 BLE dongle로 ble 패킷을 확인해보니 아래와 같이 Advertising Type이 Discoverable 으로 나옵니다.

제가 주변에 테스트 중인 비콘 모듈에서는 Advertising Type 이 non-connectable 로 잘 표시됩니다.

하지만 Samsubng Galaxy S7 edge 에서 위에 남긴 코드로 돌리면 Discoverable type으로 표시되구요.. 이를 non-connectable type으로 변경하기 위해서는 어떻게 해야하며

변경을 하지 못한다고 한다면 Discoverable type과 non-connectable type의 차이점을 알고 싶습니다.

이미지

  • 2017년 08월 10일에 작성됨

조회수 84


1 답변


좋아요
0
싫어요
채택취소하기

해결 하였습니다.

mAdvertiser.startAdvertising(mAdvSettings, mAdvData, mAdvScanResponse, mAdvCallback);

이부분에서 mAdvScanResponse 파라미터를 사용하지 않는 startAdvertising 메서드를 사용하면 non=connectable type으로 전송되되군요. ^

mAdvertiser.startAdvertising(mAdvSettings, mAdvData, mAdvCallback); 요롷게

  • 2017년 08월 11일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close