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

标签 android android-studio gradle wear-os

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

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

我阅读了 S.O.如何设置默认 Activity ,但它与我的 WatchFaceService 不做同样的工作不是 Activity 而是服务。

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

有办法实现吗?我认为这可能很困难,因为实际上它不是在运行应用程序,而是在每次运行时设置 watch 的 Watchface。

有什么想法吗?

最佳答案

简短的回答是这是不可能的。毕竟,您的表盘是一项 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 是您的表盘服务的类名(惊喜)。当然,您还需要在 list 中声明它:

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

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

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

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

关于android - 如何将我的 WatchFaceService 设置为 Android Studio 中的默认启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37420915/

相关文章:

android - 包含带有 gradle 和 Android Studio 1.2.2 的 *.so 文件

java - IntelliJ IDEA 使用 Gradle 构建文件中指定的依赖项的 JavaScript "version"?

java - gradle WriteProperties任务不会创建属性文件,除非直接运行该任务

android - java.io.IOException : Is a directory Android 异常

android - 条码扫描仪 (Zxing) 集成问题

安卓 CamcorderProfile.hasProfile NoSuchMethodError

android - 如何更正此错误 : java. lang.OutOfMemoryError

java - 在 Android Studio 中正确解析 JSON?

android - 无法生成发布构建 apk

java - Android Studio,是否有刷新按钮。每次我在 xml 中进行更改时,我都需要关闭并重新打开工作室以查看设计的更改