2016-12-17 7 views
0

AllJoyn에서 알려진 About 메시지에서 원격 장치의 잘 알려진 이름을 가져올 수 있습니까? 나중에 잘 알려진 이름을 사용하여 새 검색 프로세스없이 장치에 연결하고 싶습니다.AllJoyn : 공지 정보 메시지에서 잘 알려진 이름을 얻으시겠습니까?

나는 내가 소개 메시지에서 디바이스 ID를 얻을 수 있습니다 알고 있지만 잘 알려진 이름은 다른 것 같다 :

의 DeviceID : 558591fa-97db-464f-a8fa-efa30ecacc17

실제 잘 알려진 이름 : net.allplay.MediaPlayer.i558591fa-97db-464f-a8fa-efa30ecacc17.r3X5_6mxu

시작 부분을 하드 코딩 할 수 있지만 About 메시지에서 마지막 부분 (r3X5_6mxu)을 찾을 수 없습니다. 나는 틀린 장소를보고 있습니까, 아니면이 정보를 사용할 수 없습니까?

답변

2

발표 된 정보 메시지에서 나온 것이 아닙니다.

announced(String busName, int version, short port, 
     AboutObjectDescription[] objectDescriptions, Map<String, Variant> aboutData) 

busName 매개 변수는 원격 첨부 파일의 잘 알려진 이름 인 것으로 javadoc에 언급되어 있지만에서 :

앱이 발표를 수신

는 등록 된 AboutListener 발표 한() 메소드가 호출된다 내 경험 busName 값은 원격 첨부 파일의 고유 한 이름입니다. aboutData Map 매개 변수에는 well-know 이름이나 원격 첨부 파일의 고유 이름이 포함되지 않습니다 (aboutData 맵의 표준 필드에 관한 한).

그러나 익숙한 원격 첨부 파일의 고유 이름 (잘 알려진 이름이 게시 된 경우)을 상관 시키려면 BusListener 인터페이스를 구현하여 로컬 버스에 등록 할 수 있습니다. 원격 첨부 파일 이름 변경을 가지고 때마다, 다음 BusListener 방법은 앱에서라고합니다 : 그것은 하나가있는 경우

nameOwnerChanged(String busName, String previousOwner, String newOwner) 

busName 매개 변수 (원격 첨부 파일의 잘 알려진 이름이 될 수 있습니다, 그렇지 않으면 될 것입니다 그 고유 이름). 예를 들어 원격 첨부 파일이 처음 설정되고 이름이 지정되면 previousOwner = NULL 및 newOwner = [UniqueName]과 함께 nameOwnerChanged 메시지가 전송됩니다 (앱에서 수신). 또는 원격 첨부 파일이 종료되면 예를 들어 nameOwnerChanged 메시지가 previousOwner = [UniqueName] 및 newOwner = NULL과 함께 전송됩니다. 이 방법으로 원격 첨부 파일의 busName 및 연관된 newOwner 값을 볼 수 있습니다.

로컬 BusAttachment에서 findAdvertisedName (String namePrefix)을 호출하여 잘 알려진 이름 접두어를 수신 대기하는 것을 등록하십시오.