这可能是一个非常简单的问题,但我似乎找不到答案。
我为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()来做到这一点。我只是不知道如何。
感谢任何帮助或代码示例。
答案 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,并且不会使应用程序崩溃。