出于测试目的,我想通过ADB停止并重启我的Android Wear手表服务。停止它似乎正常工作:
adb shell am force-stop com.package.name
但是重新启动服务让我很难过。监视面是不活动,因此无法通过am start
启动。我试图在包上使用monkey
命令,但这不起作用。我尝试手动启动服务:
adb shell am startservice com.package.name/.watch_face_service
但这似乎不起作用;服务未启动,或服务IS已启动但不是当前壁纸。
它必须是可能的,因为Eclipse在我运行或调试时设法启动表盘。但是如何?
答案 0 :(得分:2)
经过多天的研究,我得出的结论是,这是不可能的。
所有WallpaperServices都需要BIND_WALLPAPER
权限:
字符串:BIND_WALLPAPER:必须由WallpaperService提供,以确保只有系统可以绑定它。
...这意味着只有系统服务才能启动壁纸。
Android操作系统可能有一些硬编码的巫术魔法会自动启动通过Eclipse或Android Studio安装的任何表盘 - 考虑到IDE没有运行任何ADB命令来启动壁纸,这是我最好的猜测。