2017-04-21 1 views
0

dbus-send 명령 줄 도구를 사용하여 Bluez 5.44와 상호 작용하려고합니다. 나는 정확하게 발견을 시작하게 만들 수는 없지만, bluetoothctlscan onscan off 명령을 사용할 때 제대로 작동합니다. d-feet을 사용하여 검색을 시작하고 중지 할 수도 있습니다.dbus-send를 사용하여 org.bluez.Adapter1.StartDiscovery를 호출하는 방법?

명령을 실행하기 전에 전원을 껐다가 켜려고했지만 검색이 시작되지 않은 것 같습니다.

내가 사용 명령 줄은 다음과 같습니다 내가 보통이 명령을 실행에 얻을 dbus-monitor에서이다 것은 Discovering 속성이 false 때문이다

dbus-send --system --type=method_call --print-reply --dest=org.bluez \ 
    /org/bluez/hci0             \ 
    org.bluez.Adapter1.StartDiscovery 

.

참고로이 내용은 d-feet입니다.

.

이 명령을 잘못 입력하면 어떻게됩니까?

+0

생각이 들었습니다. 세션과 관련이 있습니까? – Ana

+0

sudo로 시도해주세요. –

+0

''bluetoothctl '을 실행하는 것과 동시에'sudo dbus-monitor --system'을 실행하여'bluetoothctl scan on'이 무엇을하는지 감시 해보십시오. 'dbus-send'로 시도하고있는 것 이외에 버스에서 아무것도하지 않는지보십시오. –

답변

2

문제는 dbus-send가 거의 즉시 종료된다는 것입니다. BlueZ는 검색을 요청하는 클라이언트를 추적하고 (어댑터에 대한 D-Bus 프록시를 열어 놓음) 클라이언트가 더 이상 요청하지 않으면 검색이 중지됩니다.

d-feet 및 bluetoothctl은 org.bluez.Adapter1 프록시를 어댑터에 활성 상태로 유지시키는 수명이 긴 프로세스입니다.

제가 작업하고있는 glib 클라이언트에서 같은 문제가 발생했습니다. 해결책은 D-Bus 프록시 객체를 어댑터에 보관하는 것입니다.

dbus-send를 사용해야하는 경우에는 좋지 않은 소식 일 수 있습니다.

관련 문제