我有一个WatchFaceService(WatchFace),每次运行我的应用程序时,它都会切换到SimpleFace,然后我必须将我的设置为watchFace,经过多次重启后最终会非常令人沮丧。
要注意新Android Studio 2确实会发生这种情况
我读过S.O.如何设置默认活动,但是我的WatchFaceService不是一项活动,而是一项服务。
同样通过Android Studio 2的UI无法选择。
有没有办法实现这个目标?我认为这可能很难,因为它实际上并没有运行应用程序,而是在每次运行时都设置了Watch的Watchface。
有什么想法吗?
答案 0 :(得分:4)
简短的回答是,这是不可能的。毕竟,您的表盘是Service
,因此您的应用无法成为默认(启动)Activity
。它们是完全不同的组件类。
但你可以接近。
您需要做的是创建一个只包含以下代码的小外壳Activity
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER)
.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT,
new ComponentName(getPackageName(),
MyWatchFaceService.class.getName()));
startActivity(intent);
finish();
}
...其中MyWatchFaceService
是您的表面服务的类名(惊喜)。当然,您还需要在清单中声明它:
<activity android:name=".FaceActivity"
android:enabled="true"
android:exported="true">
</activity>
最后,在Android Studio中配置Wear模块,以便在运行应用时启动FaceActivity
。这位于“编辑配置”中的“运行”菜单下。
完成此操作后,将您的应用程序从AS运行到手表上,并在设备上打开表面选择器,并选择您的面部。从那里,一个水龙头就会启动它。
但是,我无法找到消除单击的方法。