Merhaba; Android studio da küçük bir kod app yapmaya çalışıyorum telefona kayıtlı kişileri listeliyorum kişi işimleri içerisinde örnek ali olanlar veli ile değişten yazmış olduğum kod aşağıda ancak butona tıkladığımda yazılım kapanıyor ben bir sorun bulamadım sizler de baka bilir misiniz.
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI ,null,null,null,ContactsContract.CommonDataKinds.P hone.DISPLAY_NAME + " ASC");
EditText edit_find = findViewById(R.id.tv_find);
string_find = edit_find.getText().toString();
EditText replace_find = findViewById(R.id.tv_raplece);
string_replace = replace_find.getText().toString();
if (cursor != null) {
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsCon tract.CommonDataKinds.Phone.DISPLAY_NAME));
if (name.contains(string_find)) {
name = name.replace(string_find, string_replace);
values.put(ContactsContract.CommonDataKinds.Phone. DISPLAY_NAME, name);
contentResolver.update(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI , values,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?",
new String[]{cursor.getString(cursor.getColumnIndex(ContactsCo ntract.CommonDataKinds.Phone.CONTACT_ID))}
);
}
}
}
cursor.close();
}
});
Android Studio WRITE_CONTACTS ile ilgili küçük yardım
10
●146
- 02-09-2023, 21:25:55bu izinler verildi kusura bakma logcat nasıl alınır bilmiyorumOmerAti adlı üyeden alıntı: mesajı görüntüle
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.ChangePersonsName"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest> - 02-09-2023, 21:31:562023-09-02 21:28:56.836 23388-23491 DatabaseUtils pid-23388 E Writing exception to parcelOmerAti adlı üyeden alıntı: mesajı görüntüle
java.lang.UnsupportedOperationException: URI: content://com.android.contacts/data/phones, calling user: com.example.changepersonsname, calling package:com.example.changepersonsname
at com.android.providers.contacts.LegacyApiSupport.up date(LegacyApiSupport.java:940)
at com.android.providers.contacts.ContactsProvider2.u pdateInTransaction(ContactsProvider2.java:4559)
at com.android.providers.contacts.AbstractContactsPro vider.update(AbstractContactsProvider.java:203)
at com.android.providers.contacts.ContactsProvider2.u pdate(ContactsProvider2.java:2432)
at android.content.ContentProvider.update(ContentProv ider.java:2045)
at android.content.ContentProvider$Transport.update(C ontentProvider.java:568)
at android.content.ContentProviderNative.onTransact(C ontentProviderNative.java:243)
at android.os.Binder.execTransactInternal(Binder.java :1339)
at android.os.Binder.execTransact(Binder.java:1275)
2023-09-02 21:28:56.836 23952-23952 AndroidRuntime com.example.changepersonsname D Shutting down VM
2023-09-02 21:28:56.856 23952-23952 AndroidRuntime com.example.changepersonsname E FATAL EXCEPTION: main
Process: com.example.changepersonsname, PID: 23952
java.lang.UnsupportedOperationException: URI: content://com.android.contacts/data/phones, calling user: com.example.changepersonsname, calling package:com.example.changepersonsname
at android.database.DatabaseUtils.readExceptionFromPa rcel(DatabaseUtils.java:174)
at android.database.DatabaseUtils.readExceptionFromPa rcel(DatabaseUtils.java:142)
at android.content.ContentProviderProxy.update(Conten tProviderNative.java:685)
at android.content.ContentResolver.update(ContentReso lver.java:2416)
at android.content.ContentResolver.update(ContentReso lver.java:2378)
at com.example.changepersonsname.MainActivity$2.onCli ck(MainActivity.java:160)
at android.view.View.performClick(View.java:7659)
at com.google.android.material.button.MaterialButton. performClick(MaterialButton.java:1211)
at android.view.View.performClickInternal(View.java:7 636)
at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
at android.view.View$PerformClick.run(View.java:30156 )
at android.os.Handler.handleCallback(Handler.java:958 )
at android.os.Handler.dispatchMessage(Handler.java:99 )
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.jav a:8176)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsC aller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:971)
2023-09-02 21:28:56.887 23952-23952 Process com.example.changepersonsname I Sending signal. PID: 23952 SIG: 9 - 02-09-2023, 21:50:38izinleri vermişsin ama kullanıcıdan talep etmen gerek kodunu böyle güncellermisin
btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_CONTACTS) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS}, PERMISSION_REQUEST_CODE); } else { ContentResolver contentResolver = getContentResolver(); Cursor cursor = contentResolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC"); EditText edit_find = findViewById(R.id.tv_find); string_find = edit_find.getText().toString(); EditText replace_find = findViewById(R.id.tv_raplece); string_replace = replace_find.getText().toString(); if (cursor != null) { while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); if (name.contains(string_find)) { name = name.replace(string_find, string_replace); values.put(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, name); contentResolver.update( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, values, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?", new String[]{cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID))} ); } } cursor.close(); } } } }); - 05-09-2023, 22:36:21neler denediysem olmuyor bir türlü anlamadımOmerAti adlı üyeden alıntı: mesajı görüntüle