連絡先の削除について

240 views
Skip to first unread message

Shigezoo

unread,
Dec 3, 2011, 4:07:01 PM12/3/11
to 日本Androidの会
初めまして。Shigezooと申します。
Androidアプリ開発初心者です。

初めてのアプリ作成で電話帳アプリを作成しています。
スマートフォンの連絡先を削除してもGoogle側の連絡先が削除されません。

いろいろ調べて下記の方法で削除しております。
他の方のアプリで削除すると削除後直ぐに同期処理が実行されてますが、
私が作成したアプリで削除しても同期処理が実行されません。
手動で同期処理を実行してもGoogle側は削除されませんでした。

どなたかご教授願います。

    private void ContactsDeleteRun(String RawContactID, String
ContactID, String LookupKey) {
ArrayList<ContentProviderOperation> ops =
new ArrayList<ContentProviderOperation>();
String sSel = Data.RAW_CONTACT_ID + "=? and " +
Data.CONTACT_ID + "=? and " +
Data.LOOKUP_KEY + "=?";
String[] sColumn = new String[]{RawContactID, ContactID, LookupKey};

ops.add(ContentProviderOperation.newDelete(addCallerIsSyncAdapterParameter(Data.CONTENT_URI))
.withSelection(sSel, sColumn)
.build());
try {
context.getContentResolver().applyBatch(ContactsContract.AUTHORITY,
ops);
} catch (RemoteException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}

private static Uri addCallerIsSyncAdapterParameter(Uri uri) {
return
uri.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER,
"true").build();
}

Shigezoo

unread,
Dec 8, 2011, 9:31:14 AM12/8/11
to 日本Androidの会
自己レスです。
Activityから削除用クラスを呼び出して削除してましたが、
それを止めてActivity内で削除すると問題なく同期が始まりました。
あと、URIをData.CONTENT_URI,RawContacts.CONTENT_URI,Contacts.CONTENT_URI
それぞれでCONTENT_IDを条件に削除を行うと綺麗に削除されました。
Reply all
Reply to author
Forward
0 new messages