Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fetching contacts in flutter

Tags:

flutter

dart

I am trying to get contacts from device device using 'contacts_service' plugin. It is working fine on my device but not working any other device.

    await PermissionHandler().requestPermissions([
      PermissionGroup.contacts,
    ]);
    try {
      var x = await ContactsService.getContacts();
      print(x);
    } catch (e) {
      print(e);
    }

This is the error message I am getting

FATAL EXCEPTION: AsyncTask #2
E/AndroidRuntime(17213): Process: com.chat.amrirez_chat, PID: 17213
E/AndroidRuntime(17213): java.lang.RuntimeException: An error occurred while executing doInBackground()
E/AndroidRuntime(17213):    at android.os.AsyncTask$3.done(AsyncTask.java:318)
E/AndroidRuntime(17213):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
E/AndroidRuntime(17213):    at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
E/AndroidRuntime(17213):    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
E/AndroidRuntime(17213):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
E/AndroidRuntime(17213):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
E/AndroidRuntime(17213):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
E/AndroidRuntime(17213):    at java.lang.Thread.run(Thread.java:761)
E/AndroidRuntime(17213): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toLowerCase()' on a null object reference
E/AndroidRuntime(17213):    at flutter.plugins.contactsservice.contactsservice.Contact.compareTo(Contact.java:94)
E/AndroidRuntime(17213):    at flutter.plugins.contactsservice.contactsservice.ContactsServicePlugin$GetContactsTask$1.compare(ContactsServicePlugin.java:175)
E/AndroidRuntime(17213):    at flutter.plugins.contactsservice.contactsservice.ContactsServicePlugin$GetContactsTask$1.compare(ContactsServicePlugin.java:172)
E/AndroidRuntime(17213):    at java.util.TimSort.binarySort(TimSort.java:292)
E/AndroidRuntime(17213):    at java.util.TimSort.sort(TimSort.java:235)
E/AndroidRuntime(17213):    at java.util.Arrays.sort(Arrays.java:1523)
E/AndroidRuntime(17213):    at java.util.Collections.sort(Collections.java:238)
E/AndroidRuntime(17213):    at flutter.plugins.contactsservice.contactsservice.ContactsServicePlugin$GetContactsTask.doInBackground(ContactsServicePlugin.java:178)
E/AndroidRuntime(17213):    at flutter.plugins.contactsservice.contactsservice.ContactsServicePlugin$GetContactsTask.doInBackground(ContactsServicePlugin.java:137)
E/AndroidRuntime(17213):    at android.os.AsyncTask$2.call(AsyncTask.java:304)
E/AndroidRuntime(17213):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
E/AndroidRuntime(17213):    ... 4 more
like image 266
Ahmed Avatar asked Apr 01 '26 09:04

Ahmed


1 Answers

Add Permission to ManifestFiles (there are two Manifest.xml in flutter Project)

main/AndroidManifest.xml

<uses-permission android:name="android.permission.READ_CONTACTS" />  
<uses-permission android:name="android.permission.WRITE_CONTACTS" />  

use Package : contacts_service 0.3.3

https://pub.dev/packages/contacts_service

like image 147
Arun R. Prajapati Avatar answered Apr 02 '26 23:04

Arun R. Prajapati



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!