0
連絡先にカスタムフィールドを追加して、連絡先が自分のアプリケーションにマークされているかどうかを通知します。 まず、カスタムデータを指定されたidに接続するように設定する関数を作成したいのですが、使用しようとしているコードが正しく動作しません。Androidの連絡先にカスタムデータを追加する
public static final String MIMETYPE_EMPLOYEE = "vnd.android.cursor.item/employee";
public void addEmployee(String id){
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
Uri newContactUri = null;
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(ContactsContract.Data._ID + "=?", new String[]{id})
.withValue(ContactsContract.Data.MIMETYPE, MIMETYPE_EMPLOYEE)
.withValue(ContactsContract.Data.DATA1, "yes")
.build());
try{
ContentProviderResult[] res = act.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
if (res!=null && res[0]!=null) {
newContactUri = res[0].uri;
Log.d(LOG_TAG, "URI added contact:"+ newContactUri); //here it says that it's null :(
}
else Log.e(LOG_TAG, "Contact not added.");
} catch (RemoteException e) {
// error
Log.e(LOG_TAG, "Error (1) adding contact.");
newContactUri = null;
} catch (OperationApplicationException e) {
// error
Log.e(LOG_TAG, "Error (2) adding contact.");
newContactUri = null;
}
Log.d(LOG_TAG, "Contact added to system contacts.");
if (newContactUri == null) {
Log.e(LOG_TAG, "Error creating contact");
}
}
私はまた、代わりに、更新のインサートを使用しようとしましたが、私は取得しようとしたときに挿入して、私のアプリケーションがクラッシュした「newContactUriの= RESを[0] .uri;」 同様のソリューションを検索しましたが、何も私のために働いていませんでした:/
plzこれをカスタム連絡先にお試しください: :[\ [\]をクリックしてください] [1] を[1]:http://stackoverflow.com/questions/6853799/add-a-custom-field-to-a-phone-number/7332858 #7332858 –