連絡先の姓を「anyname」に編集するコードがあり、一部のAPIではうまく機能し、他のAPIでは機能しません。一部のAPIで連絡先の姓が編集されていません
android:onClick="start"
とメインコード(ボイド開始):
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ContentProviderOperation.Builder builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
builder.withSelection(ContactsContract.CommonDataKinds.StructuredName.CONTACT_ID + "=?", new String[]{String.valueOf(1)});
builder.withValue(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, "anyname");
ops.add(builder.build());
try
{
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
}
catch (Exception e)
{
e.printStackTrace();
}
{String.valueOf(1)}
は、第一のコンタクトを選択するためのものであることが主なコードは、このコードをボタンに触れることにより開始します。 4.3(API 18) - 4.4.4(API 19) - 6(API 23)-7(API 24)および7.1(API 25)で動作しません。他のAPIではうまく機能し、姓を変更することができます。エラーや例外については、私はそれらのどれにも例外を取得せず、API 18と19のために(モニタと実行ウィンドウで)何も取得しません。しかし、私はそれがすべてのモニタ私はAPI24の行をメモ帳にコピーしました。これらは、アプリケーションがデバッグまたは実行中にボタンをタッチした後に表示される行です。ボタンに触れると、何も表示されず、アプリケーションは何もしません。
他のAPIは、あまりにもこれらの行を得ました。このため、私はAPI 24のみをコピーしました。あなたは問題が何かを理解できますか?その答えとしてこれを置く
あなたが投稿したログがエラーを示しています 'SecurityExceptionが...必要ですREAD_CONTACTSまたはWRITE_CONTACTS'を使用している場合は、 Android M以上の実行時にもリクエストしてください。 https://developer.android.com/training/permissions/requesting.html – marmor
を参照してください。また、自分が行っていることを理解していない限り、try/catchを使用して例外を非表示にしないでください。それ以外の場合は、例外を修正するためにあなたのアプリをクラッシュさせる必要があります – marmor
おかげで男!出来た!私はこれらのコードをArrayListの前に追加します。 – Magasvazn