• 02-09-2023, 20:55:11
    #1
    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();
    }
    });
  • 02-09-2023, 21:04:36
    #2
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>


    izinlerini verip logcat paylaşırmısın
  • 02-09-2023, 21:25:55
    #3
    OmerAti adlı üyeden alıntı: mesajı görüntüle
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>


    izinlerini verip logcat paylaşırmısın
    bu izinler verildi kusura bakma logcat nasıl alınır bilmiyorum

    <?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:28:24
    #4
    Android studio ise alt barda logcat yazar ona basip uygulamayi calistirin ordaki hata kodlarini paylasin
  • 02-09-2023, 21:31:56
    #5
    OmerAti adlı üyeden alıntı: mesajı görüntüle
    Android studio ise alt barda logcat yazar ona basip uygulamayi calistirin ordaki hata kodlarini paylasin
    2023-09-02 21:28:56.836 23388-23491 DatabaseUtils pid-23388 E Writing exception to parcel
    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:38
    #6
    izinleri 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();
                }
            }
        }
    });
  • 03-09-2023, 01:43:10
    #7
    Yine olmadi android sdk 5.1 onun etkisi ola bilir mi
  • 05-09-2023, 22:36:21
    #8
    OmerAti adlı üyeden alıntı: mesajı görüntüle
    izinleri 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();
                }
            }
        }
    });
    neler denediysem olmuyor bir türlü anlamadım
  • 05-09-2023, 22:38:31
    #9
    wpden ulaş