轻触表盘即可启动手表上的应用程序(如Flashlight)

时间:2018-10-24 07:22:10

标签: android android-intent wear-os

这可能是一个非常简单的问题,但我似乎找不到答案。

我为Wear OS 2.0创建了一个表盘,我要做的就是在点击表盘时在表上启动Flashlight之类的应用程序或其他第三方应用程序。我知道代码必须放在这里:

@Override
     public void onTapCommand(int tapType, int x, int y, long eventTime) {
         switch (tapType) {
             case TAP_TYPE_TAP:
                 **Code to start an app goes here**
                 break;
             default:
                 super.onTapCommand(tapType, x, y, eventTime);
                 break;
         }
         invalidate();

我也很确定我必须使用Intent和startActivity()来做到这一点。我只是不知道如何。

感谢任何帮助或代码示例。

1 个答案:

答案 0 :(得分:0)

这是我到目前为止发现的。感谢Mihai Coman为我指出正确的方向。使用我原始帖子中的Flashlight示例:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ComponentName cn = new ComponentName("com.google.android.clockwork.flashlight", "com.google.android.clockwork.flashlight.FlashlightActivity");
intent.setComponent(cn);
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;
if (isIntentSafe) {
     startActivity(intent);
}

真正要做的(就是与之斗争)是找到要启动的确切包和类名。

最后六行代码实际上只是为了确保收到Intent,并且不会使应用程序崩溃。