How can I lookup host name from snap core using avahi (mDNS)?

Now I create a snap ‘my-ping’ to learn how can I lookup the host name from the snap package using avahi. It contains ping, avahi-resolve and avahi-browse to check the functionality.

My snapcfaft.yaml is here:

name: my-ping
version: '0.1'
summary: My ping snap
description: |
  ping snap package.

grade: devel
confinement: devmode

parts:
  ping:
    plugin: nil
    stage-packages:
      - coreutils
      - avahi-daemon
      - avahi-utils
    stage:
      - bin
      - lib
      - usr
      - etc
    prime:
      - bin
      - lib
      - usr
      - etc
      
apps:
  ping:
    command: ping
    plugs: [network, network-bind, network-observe, avahi-observe]
  avahi-resolve:
    command: avahi-resolve
    plugs: [network, network-bind, network-observe, avahi-observe]
  avahi-browse:
    command: avahi-browse
    plugs: [network, network-bind, network-observe, avahi-observe]

After install it, I tried

$ my-ping.avahi-resolve -n carbon.local
Failed to create client object: Daemon not running

It’s reasonable, we have to connect my-ping:avahi-observe to avahi:avahi-observe.

$ snap connect my-ping:avahi-observe avahi
$ snap interfaces my-ping
Slot                 Plug
avahi:avahi-observe  my-ping
:network             avahi,my-ping,snapweb,tork-ros-roomblock
:network-bind        avahi,my-ping,snapweb,tork-ros-roomblock
-                    my-ping:network-observe

However, I still have a problem, the command never returns.

$ my-ping.avahi-resolve -n carbon.local
(Never come back until Ctrl-C)

The /var/log/syslog saids:

Feb  5 12:38:42 lidarkick avahi.avahi-daemon[7692]: dbus-protocol.c: interface=org.freedesktop.Avahi.Server, path=/, member=GetAPIVersion
Feb  5 12:38:42 lidarkick avahi.avahi-daemon[7692]: dbus-protocol.c: interface=org.freedesktop.Avahi.Server, path=/, member=GetState
Feb  5 12:38:42 lidarkick avahi.avahi-daemon[7692]: dbus-protocol.c: interface=org.freedesktop.Avahi.Server, path=/, member=HostNameResolverNew
Feb  5 12:38:42 lidarkick kernel: [ 4511.723096] audit: type=1107 audit(1517801922.269:746): pid=1113 uid=100 auid=4294967295 ses=4294967295 msg='apparmor="DENIED" operation="dbus_signal"  bus="system" path="/Client5/HostNameResolver1" interface="org.freedesktop.Avahi.HostNameResolver" member="Found" mask="send" name=":1.28" pid=7692 label="snap.avahi.avahi-daemon" peer_pid=12085 peer_label="snap.my-ping.avahi-resolve"
Feb  5 12:38:42 lidarkick kernel: [ 4511.723096]  exe="/usr/bin/dbus-daemon" sauid=100 hostname=? addr=? terminal=?'

It may complains about Dbus, but I have no idea to solve this. How can I setup my package to resolve the host name using avahi package?

Thanks,