あなたの質問は最新のものですか、それともすでに問題を解決しましたか?
編集:
GoogleCalendar の実装方法に関する基本的な情報を次に示します。
1. カレンダーを処理するクラスを作成します。
public class MyCalendar
{
private static final String AUTH_TOKEN_TYPE = "cl";
public static final String KEY = "YOUR_API_KEY"; //You can find below Simple API Access at GoogleApiConsole
final HttpTransport transport = AndroidHttp.newCompatibleTransport();
final JsonFactory factory = new GsonFactory();
GoogleAccountManager accountManager;
String name;
String token;
public com.google.api.services.calendar.Calendar mycalendar;
private HttpRequestInitializer initializer = new HttpRequestInitializer()
{
public void initialize(HttpRequest request) throws IOException
{
request.getHeaders().setAuthorization(GoogleHeaders.getGoogleLoginValue(authToken));
}
};
public MyCalendar()
{
}
}
Calendar オブジェクトを作成します (これを MyCalendar のコンストラクターで行います
mycalendar = com.google.api.services.calendar.Calendar.builder(transport,jsonFactory)
.setApplicationName("CHOOSE_A_APPNAME")
.setHttpRequestInitializer(initializer)
.setJsonHttpRequestInitializer(new GoogleKeyInitializer(KEY))
.build();
accountManager = new GoogleAccountManager(TimetableApplication.getInstance().getActivity());
findGoogleAcc();
カレンダーにアクセスしたい場合は、初期化子の初期化メソッド [;-)] が後で呼び出されます。
2.ユーザーの電話番号で参照されている Google アカウントを検索します。
void findGoogleAcc()
{
Account account = accountManager.getAccountByName(name);
if(account == null)
{
//Handle wrong name, or if user connect more than one accounts to phone
}
if(token != null)
{
//you already got your token for user's account and these method is not necessary
}
accountManager.getAccountManager().getAuthToken(account, AUTH_TOKEN_TYPE, true, new AccountManagerCallback<Bundle>() {
public void run(AccountManagerFuture<Bundle> future)
{
try
{
Bundle bundle = future.getResult();
if(bundle.containsKey(AccountManager.KEY_INTENT))
{
// Allow app to connect to googleaccount
Intent intent = bundle.getParcelable(AccountManager.KEY_INTENT);
intent.setFlags(intent.getFlags() & ~ Intent.FLAG_ACTIVITY_NEW_TASK);
activity.startActivityForResult(intent, 0);
}
else
if(bundle.containsKey(AccountManager.KEY_AUTHTOKEN))
{
this.authToken = authToken;
gotSmthFromCalendar();
}
}
catch(Exception e)
{
}
}
}, null);
}
3. メソッドでカレンダーを使用する:
void gotSmthFromCalendar()
{
//Here u can do whatever u want.
}
gotSmthFromCalendar() では、AsyncTask を使用してデータを要求する必要があると思います。たとえば、次のことができます。
List<CalendarListEntry> calendarList = mycalendar.calendarList().list().execute().getItems();
for(CalendarListEntry calendarEntry : calendarList)
{
String summary = calendarEntry.getSummary();
String id = calendarEntry.getId();
Log.v("Calendar","Found a calendar with summary : " + summary + " an id: " + id);
}
これらの基本が v3 の使用に役立つことを願っています。追加のヘルプが必要な場合は、いつでもお問い合わせください!!
クッキー