ofono 1.17のドキュメントによると:
https://github.com/rilmodem/ofono/tree/master/doc
ハンズフリーには 2 つのインターフェイスがあります。
- org.ofono.Handsfree
- org.ofono.HandsfreeAudioManager
pulseaudio を機能させるには、それらにアクセスする必要があります。次のエラーが返されます。
E: [pulseaudio] backend-ofono.c: ofono でのハンズフリー オーディオ エージェントとしての登録に失敗しました: org.freedesktop.DBus.Error.UnknownMethod: インターフェイス "org.ofono.HandsfreeAudioManager" の署名 "oay" を持つメソッド "Register"存在しません
しかし、そのメソッドは存在し (上記のドキュメントによると)、その署名があります: object path, array{byte}.
したがって、存在しないというより、アクセスできないと思います。利用可能なサービスを一覧表示する簡単な Python スクリプトを作成すると、org.ofono がそこにあります。
次に、オブジェクトを一覧表示するコードを追加しました。
def list_obj(bus, service, object_path):
print(object_path)
obj = bus.get_object(service, object_path)
iface = dbus.Interface(obj, 'org.freedesktop.DBus.Introspectable')
xml_string = iface.Introspect()
for child in ElementTree.fromstring(xml_string):
if child.tag == 'node':
if object_path == '/':
object_path = ''
new_path = '/'.join((object_path, child.attrib['name']))
list_obj(bus, service, new_path)
bus = dbus.SystemBus()
list_obj(bus, 'org.ofono.HandsfreeAudioManager', '/')
しかし、次のエラーが発生します。
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: 名前 'org.ofono.HandsfreeAudioManager' の所有者を取得できませんでした: そのような名前はありません
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: org.ofono.HandsfreeAudioManager という名前は、.service ファイルによって提供されませんでした
/etc/dbus-1/system.d/ofono.conf で、dbus のユーザー ポリシーも確認しました。
<policy user="user">
<allow own="org.ofono"/>
<allow send_destination="org.ofono"/>
<allow send_interface="org.ofono.SimToolkitAgent"/>
<allow send_interface="org.ofono.PushNotificationAgent"/>
<allow send_interface="org.ofono.SmartMessagingAgent"/>
<allow send_interface="org.ofono.PositioningRequestAgent"/>
<allow send_interface="org.ofono.HandsfreeAudioManager"/>
<allow send_interface="org.ofono.Handsfree"/>
</policy>
<policy at_console="true">
<allow send_destination="org.ofono"/>
</policy>
<policy context="default">
<deny send_destination="org.ofono"/>
</policy>
もちろん、ユーザー "user" として ofono と上記のコードを実行します。アイデアが不足しています... 問題を解決するには、さらに何をすればよいですか?