如何将我的WatchFaceService设置为Android Studio中的默认启动活动

时间:2016-05-24 18:09:57

标签: android android-studio gradle wear-os

我有一个WatchFaceService(WatchFace),每次运行我的应用程序时,它都会切换到SimpleFace,然后我必须将我的设置为watchFace,经过多次重启后最终会非常令人沮丧。

要注意新Android Studio 2确实会发生这种情况

我读过S.O.如何设置默认活动,但是我的WatchFaceService不是一项活动,而是一项服务。

同样通过Android Studio 2的UI无法选择。

有没有办法实现这个目标?我认为这可能很难,因为它实际上并没有运行应用程序,而是在每次运行时都设置了Watch的Watchface。

有什么想法吗?

1 个答案:

答案 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运行到手表上,并在设备上打开表面选择器,并选择您的面部。从那里,一个水龙头就会启动它。

但是,我无法找到消除单击的方法。