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

How can I set my WatchFaceService as the default launch activity in Android Studio

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

注意到新的 Android Studio 2

确实发生了这种情况

我阅读了大约 S.O。如何设置默认值 activity 但这与我的 WatchFaceService 不是 activity 而是服务的作用不同。

也无法通过 Android Studio 2 的 UI 选择它。

有办法实现吗?我认为这可能很困难,因为实际上它不是 运行 一个应用程序,而是在每个 运行.

设置手表的 Watchface

有什么想法吗?

简短的回答是这是不可能的。毕竟,您的表盘是 Service,所以它不可能成为您应用程序的默认(启动)Activity。它们是完全不同的组件 classes.

但是你可以靠近。

您需要做的是创建一个仅包含以下代码的小 shell 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 是您的表盘服务的 class 名称(惊喜)。当然,您还需要在清单中声明它:

    <activity android:name=".FaceActivity"
              android:enabled="true"
              android:exported="true">
    </activity>

最后,在 Android Studio 中配置 Wear 模块,以便在 运行 应用程序时启动 FaceActivity。这是在编辑配置中的 运行 菜单下。

完成后,运行 您的应用程序从 AS 到手表,它会打开设备上的表盘选择器,并选择您的头像。从那里,轻轻一按即可启动。

不过,我看不到消除该单击的方法。