2

カレンダー イベントを発行する Web サービスがあります: http://calevent.herokuapp.com。iOS では、その URL によってカレンダー ポップアップが開き、イベントの詳細と、ユーザーが自分のカレンダーに追加できるボタンが表示されます。Android 4.1 を実行している私のメインの Android デバイスである Galaxy SIII では、通常のファイル ダウンロードがトリガーされます。望ましい動作は、iOS の動作に似ています。

このサービスは、次の 2 つの重要なヘッダーを設定します。

  • Content-Type: text/calendar; charset=utf-8
  • Content-Disposition: inline; filename="event.ics"

私の端末のカレンダーアプリ「S Planner」のマニフェストを解読しました。BROWSABLEデータのインテント フィルターは定義しませんtext/calendar。それが定義しているのは、私が(ab)使用できるかどうかわからないGoogleカレンダー固有のものです。

これはバニラのカレンダーアプリからのものです:

<activity android:name="GoogleCalendarUriIntentFilter" android:label="@string/app_label"
   android:theme="@android:style/Theme.NoDisplay"
   android:configChanges="orientation|keyboardHidden">

   <intent-filter
      android:priority="50">
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="http" android:host="www.google.com" android:pathPrefix="/calendar/event" />
      <data android:scheme="https" android:host="www.google.com" android:pathPrefix="/calendar/event" />
      <data android:scheme="http" android:host="www.google.com" android:pathPattern="/calendar/hosted/.*/event" />
      <data android:scheme="https" android:host="www.google.com" android:pathPattern="/calendar/hosted/.*/event" />
   </intent-filter>
</activity>

これは行き止まりですか?ユーザー エクスペリエンスに影響を与えない他のソリューションはありますか?

4

1 に答える 1

0

問題:

私の知る限り、アプリケーションはオープン ソースとしてGoogle提供Calendarされており、デバイス メーカーは、それぞれのコードをビルドする際にデフォルトのものを置き換えることSamsung,Htc,Sonyに慣れています。modify or publish their own applicationAndroid source

そのため、2 つの可能性がありGoogleます。デフォルトのアプリにそのような機能を追加していないかSamsung、ソースを変更してその機能を削除しています。

つまり、このタスクを達成することは困難であるか、不可能である可能性があります。

この問題に直面したとき、次の解決策を適用しました。

解決:

アプリケーションでユーザー インターフェイスのようなカレンダーを表示し、その中でイベントを表すことができます。

このようなインターフェイスを作成するために、必要に応じてサードパーティのライブラリを使用できます。

まず、そのevent.icsファイルをプログラムで読み取り、そのデータを抽出します。その後、 Caldroidなどのサードパーティ ライブラリを使用して、特定の日付のイベントを表すことができます。

参考になれば幸いです!!

于 2013-10-15T14:31:00.583 に答える