Запустите приложение (например, фонарик) на часах, нажав на циферблат - PullRequest
0 голосов
/ 24 октября 2018

Это может быть действительно простой вопрос, но я не могу найти ответ на него.

Я создал циферблат для Wear OS 2.0, и все, что мне нужно сделать, это запустить приложение, подобноеФонарик или другое стороннее приложение на часах, когда я нажимаю на циферблат.Я знаю, что код должен идти сюда:

@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 голосов
/ 25 октября 2018

Вот что я нашел до сих пор.Спасибо Михаю Коману за то, что он указал мне правильное направление.Используя пример фонарика из моего исходного поста:

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);
}

Все, что действительно нужно сделать (и бороться с этим), - это найти точный пакет и имя класса для запуска.

Последнийшесть строк кода, по сути, просто для того, чтобы убедиться, что намерение получено и не приведет к сбою приложения.

...