2016-06-24 10 views
0

APIコールから受け取ったイベントを受け取り、GoogleのカレンダーAPIを使用して新しいカスタムカレンダーを作成し、追加/削除/更新を追加するアプリケーションを作成しています必要に応じてカレンダーのイベントこれはすべてうまくいく。私が実行している問題は、カスタムカレンダーがAndroidのGoogleカレンダーアプリでデフォルトで表示されていないことです。ユーザーは、更新する必要があります。>>>詳細を表示する(該当するGoogleアカウントの下で>>>名前でカレンダーを選択する>>>カレンダーとアプリケーションが作成したイベントが表示される前に、手動で同期切り替えを選択します。多くのユーザーは、彼らがカレンダーはカレンダーアプリ内に表示させるために、これらの追加の手順を実行する必要があることを知らないかもしれませんカレンダープログラムによって作成されたカレンダーAPIはデフォルトでアプリケーションに表示されません

GoogleカレンダーAPI:https://developers.google.com/google-apps/calendar/v3/reference/

私は許すカレンダーAPIドキュメント内の任意のメソッドが表示されません私は作成したカレンダーをプログラムで設定して同期/表示することができますが、これが可能であれば誰でも知ることができますか?そうなら、正しい方向に向けるのがいいでしょうか?

ありがとうございました!

答えて

0

Calender Provider APIは、アプリケーションと同期アダプタで使用できます。このルールは、プログラムの種類によって異なります。このドキュメントでは主に、Calendar Provider APIをアプリケーションとして使用することに焦点を当てています。

カレンダープロバイダAPIを使用すると、アプリケーションと同期アダプタは、ユーザーのカレンダーデータを保持するデータベーステーブルへの読み取り/書き込みアクセス権を取得できます。

シンクアダプタは、ユーザーのデバイス上のカレンダーデータを別のサーバーまたはデータソースと同期させます。 CalendarContract.CalendarsおよびCalendarContract.Eventsテーブルには、使用する同期アダプタ用に予約されている列があります。プロバイダとアプリケーションはそれらを変更すべきではありません。実際には、シンクアダプタとしてアクセスされていないと表示されません。

カレンダーデータを読み取るには、アプリケーションでマニフェストファイルにREAD_CALENDAR権限を含める必要があります。

ここ
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android"...> 
<uses-sdk android:minSdkVersion="14" /> 
<uses-permission android:name="android.permission.READ_CALENDAR" /> 
<uses-permission android:name="android.permission.WRITE_CALENDAR" /> 
... 
</manifest> 

はあなたが同期のアダプターで使用するためのURIを返すために使用できるヘルパーメソッドです:

static Uri asSyncAdapter(Uri uri, String account, String accountType) { 
return uri.buildUpon() 
.appendQueryParameter(android.provider.CalendarContract.CALLER_IS_SYNCADAPTER,"true") 
.appendQueryParameter(Calendars.ACCOUNT_NAME, account) 
.appendQueryParameter(Calendars.ACCOUNT_TYPE, accountType).build(); 
} 

同期アダプタの実装例については、それはWRITE_CALENDAR許可を含める必要がありますSampleSyncAdapter:https://developer.android.com/samples/index.html

関連する問題