Kontakte öffenen

  • 7 Antworten
  • Letztes Antwortdatum
O

olde

Neues Mitglied
0
Hallo,
ich beschäftige mich erst seit kurzem mit der App Entwicklung und habe leider das Problem, dass ich einen einzelnen Benutzer aus meiner Kontaktliste öffnen möchte.

Momentan bekomme ich es schon hin die Kontaktliste zu öffnen, was ich aber möchte ist, dass ich den Namen übergeben bekomme und nun diesen Kontakt aufrufen möchte. Zur Not würde es auch reichen, wenn ich die Kontaktliste von Android öffne mit einem übergebenen Suchparameter.

Code:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("content://contacts/people/"));
cordova.getActivity().startActivity(intent);

Ich wäre euch sehr Dankbar wenn ihr mir helfen könntet.
 
Hallo StefMa,
schonmal vielen Dank für deine Hilfe!

startActivityForResult() hatte ich schon ausprobiert, doch dort bekomme ich ja die Kontaktliste und wähle ein Kontakt aus. Danach geht er ja mit einem Callback zurück. Dies möchte ich nicht. Es soll anhand des Namens der Kontakt direkt geöffnet werden.
 
So schnelle Hilfe! Einfach nur genial...

Leider habe ich keine contactId.
Ich hätte nur den Namen :(
 
Dann musst du im Zweifel ein Auswahl menü anzeigen, weil was machst du wenn du mehrere Kontakte mit dem gleichen Namen hast?

Du musst schon leider schon irgendwie an die ID kommen.
Dazu müsstest du aber wahrscheinlich die Kontakte selber durchsuchen, dafür braucht deine App die entsprechenden Rechte.
 
Also die ID bekomme ich mittlerweile jedoch wird mir folgendes angezeigt, obwohl alle permissions gesetzt wurden.

Fehlermeldung:
Datenbank-Informationen konnten nicht erhalten werden.

Code:
String id = "";
Uri contactUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_FILTER_URI, Text);
Cursor idCursor = cordova.getActivity().getContentResolver().query(contactUri, null, null, null, null);
while(idCursor.moveToNext())
  {
  id = idCursor.getString(idCursor.getColumnIndex(ContactsContract.Contacts._ID));
  }
  Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("content://contacts/people/" + id));
cordova.getActivity().startActivity(intent);

Code:
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.RECORD_VIDEO"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />   
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
 
Zuletzt bearbeitet:
Keiner eine Idee? :)
 
Zurück
Oben Unten