0

私はアンドロイド(アンドロイドウェアは言うまでもなく)開発にまったく慣れていないので、ウォッチフェイスのタップハンドラーに次のようなものがあります。

Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon();
builder.appendPath("time");
ContentUris.appendId(builder, startMillis);
Intent intent = new Intent(Intent.ACTION_VIEW)
    .setData(builder.build())
    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

タップすると、このアクションを処理できるアプリケーションはありませんというメッセージが表示されます。

もちろん、Agendaアプリはありますし、他にもいくつかのカレンダー アプリ (Google など) をインストールしました。

4

3 に答える 3

2

これらのアプリの Wear コンポーネントは、Intent(おそらく) ハンドヘルド コンポーネントのように標準の Calendar をサポートしていないようです。ほとんどの場合、開発者は、他の人 (あなたのような) が時計でこれをやりたいと思うことを十分に予測していません。

これを具体的に確認するには、adb を使用してそれぞれの APK をウォッチから取り出し、それらに対してapktoolを実行して、人間が読み取れるマニフェストを抽出します。それらに含まれる要素を見ると、<intent>次の両方がわかります。

  • それら標準をサポートしているCalendarContract場合、その場合、呼び出し方に問題があります。
  • Intentそうでない場合は、おそらくあなたが呼び出すことができる他のものを公開しています。
于 2016-03-13T13:55:01.537 に答える