我有一个 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/