2014-05-13 32 views
6

Mam zaimplementowaną funkcję połączeń wideo/audio Skype przy użyciu funkcji Intent w mojej aplikacji, działa ona poprawnie. Ale teraz chcę uzyskać wszystkie kontakty z konta Skype jest to możliwe ?.Czy można uzyskać kontakty z mojego konta Skype w Androidzie?

Czy istnieje alternatywny sposób wyświetlania listy kontaktów konta Skype, proszę podać jakiś pomysł?

+0

Czy próbowałeś zaimplementować skype Api? –

+0

Nie. Robię to intencją –

+2

Myślę, że powinieneś użyć swojego API, aby uzyskać dostęp do kont tutaj- http://developer.skype.com/skype-uris/reference –

Odpowiedz

3

Wszystkie kontakty (pod warunkiem, że są zsynchronizowane) można uzyskać od dostawcy usługi ContactsContract. Kolumna RawContacts.ACCOUNT_TYPE tabeli wskazuje typ konta dla każdego wpisu ("nieprzetworzony" oznacza, że ​​zawiera wszystkie pozycje, np. Wiele wierszy dla pojedynczej osoby z wieloma zagregowanymi kontaktami).

Aby odczytać kontakty Skype, można zrobić coś takiego:

Cursor c = getContentResolver().query(
       RawContacts.CONTENT_URI, 
       new String[] { RawContacts.CONTACT_ID, RawContacts.DISPLAY_NAME_PRIMARY }, 
       RawContacts.ACCOUNT_TYPE + "= ?", 
       new String[] { "com.skype.contacts.sync" }, 
       null); 

int contactNameColumn = c.getColumnIndex(RawContacts.DISPLAY_NAME_PRIMARY); 
ArrayList<String> mySkypeContacts = new ArrayList<String>(); 

while (c.moveToNext()) 
{ 
    /// You can also read RawContacts.CONTACT_ID to query the 
    // ContactsContract.Contacts table or any of the other related ones. 
    mySkypeContacts.add(c.getString(contactNameColumn)); 
} 

Należy również zwrócić się o zgodę w pliku AndroidManifest.xmlandroid.permission.READ_CONTACTS.