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

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

我读了一些SO如何设置默认活动,但是这与我的WatchFaceService不是一项活动而是一项服务没有完成相同的工作。

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

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

有任何想法吗?

===============>>#1 票数:4 已采纳

简短的答案是这是不可能的。 毕竟,您的表盘是Service ,因此无法将其作为应用程序的默认(启动) Activity 它们是完全不同的组件类。

但是你可以接近。

您需要做的是创建一个小小的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是表盘服务(惊奇)的类名。 当然,您还需要在清单中声明它:

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

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

完成此操作后,从AS将应用程序运行到手表上,它将在设备上打开表盘选择器,并且选择了您的表盘。 从那里开始一键启动。

不过,我看不出有消除这种轻按的方法。

  ask by Jimmy Kane translate from so

未解决问题?本站智能推荐: