2013-03-11 11 views
5

Chcę ukryć wszystkie kontakty bez numerów telefonów w książce telefonicznej z mojej aplikacji .. Podobnie jak w książce telefonicznej, kiedy przejdziesz do książki telefonicznej -> ustawienia jest pole wyboru, które stwierdza, że ​​„Kontakty z numerem telefonu tylko” Chcę, aby zaimplementować tę funkcję w moim appUstawienia książki telefonicznej (np. Filtr tylko kontaktowy) Przykład kodu Android Przykład:

muszę metodę (kod) do poruszania użytkownikom książce telefonicznej -> ustawienia (aktywności) (aPP system)

od moja aktywność w aplikacji.

lub gorzej sprawa ukryj wszystkie kontakty bez numeru telefonu za pośrednictwem bazy danych. Aby książka telefoniczna mogła się odfiltrować.

Obecnie znalazłem

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
startActivityForResult(intent, 123); 

Powyższy kod otwiera książkę telefoniczną, ale chcę, aby otworzyć książkę telefoniczną - strona> Ustawienia.

W sumie chcę, aby zawartość książki telefonicznej „Kontakty z numerami telefonów” z mojej aplikacji

+0

czy zrozumiałem pytanie, to może cię [Kontakt Android Wyświetlacz Nazwa i numer (y) telefonu w zapytaniu pojedynczej bazy danych?] Pomocy [1] [1]: http: // stackoverflow.com/questions/6587674/android-contacts-display-name-and-phone-numbers-in-single-database-query – eeadev

+0

Nie, chcę otworzyć książkę telefoniczną -> ustawić stronę z mojej działalności, Jeśli nie jest to możliwe, implementuj Ustawienie "Tylko kontakty z numerami telefonów" dla książki telefonicznej w mojej aplikacji –

Odpowiedz

3

muszę metodę (kod) do poruszania się użytkowników do książki telefonicznej -> Ustawienia (aktywność) (Aplikacja systemowa)

Istnieją setki, a może tysiące telefonów z systemem Android. Żadna z nich nie musi być taka sama w odniesieniu do ich aplikacji "Książka telefoniczna". Żadna z tych aplikacji "książka telefoniczna" nie musi mieć funkcji, której szukasz - niektóre mogą, niektóre nie. Najprawdopodobniej żadna z nich nie ma udokumentowanej i obsługiwanej struktury dostępu do ekranu w aplikacji, aby kontrolować ustawienia, które mogą, ale nie muszą mieć.

chcę to ukryć wszystkie kontakty bez numerów telefonu w książce telefonicznej z mojej aplikacji

Wtedy trzeba będzie nie używać „książki telefonicznej” aplikacji, ale zamiast wyświetlać kontakty siebie, poprzez pozwolenie READ_CONTACTS i ContactsContract .

+0

Masz na myśli aplikacje książki telefonicznej nie są takie same na wszystkich urządzeniach? Każde urządzenie z Androidem nie ma swojej książki telefonicznej (nic standera, nazwa działania itp.). Drugą rzeczą, która polega na kontaktowaniu się z numerami telefonów, jest implementacja filtra przez książkę telefoniczną. Nie możemy tego zrobić z bazą danych kontaktów –

+0

@AmirQayyumKhan: "Masz na myśli aplikacje Książki telefonicznej nie są takie same we wszystkich urządzeniach?" - producenci urządzeń mogą zastąpić aplikację Kontakty z projektu Android Open i zastąpić ją własną. "nie możemy tego zrobić z bazą danych kontaktów" - dlaczego nie? – CommonsWare

2
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
startActivityForResult(intent, PICK_CONTACT); 
+0

właśnie skopiowałeś mój własny skrypt! przeszedłeś mój problem? –

+0

oczywiście, że nie, Amir. Szukałem w google, ale fragment kodu też jest inny. Jeśli to nie rozwiąże problemu, spróbuj i wytłumacz w inny sposób. – eeadev

+0

Ten kod nie działa. w kodzie 'startActivityForResult (intent, PICK_CONTACT); PICK_CONTACT 'jest stałą taką jak 123 –

0

Cóż, z powodzeniem opracowałem aplikację Kontakty dla systemu Android jako mój główny projekt. Uważam, że jest to dość proste. Oto kod jak to zrobiłem.

Cursor c = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, 
              null, 
              ContactsContract.Contacts.HAS_PHONE_NUMBER + " = 1", 
              null, 
              ContactsContract.Contacts.DISPLAY_NAME+" COLLATE LOCALIZED ASC"); 

      mAdapter = new MyAdapter(this, 
         R.layout.single_cell, 
         c, 
         new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME}, 
         new int[]{R.id.disp_name}, 
         CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); 

      listview.setAdapter(mAdapter); 

A w MyAdapter, mam przedłużony SimpleCursorAdapter i ponad rided Bindview(), aby skorzystać z wydajnością SimpleCursorAdapter. Musisz jednak mieć uprawnienia do czytania kontaktów. W twoim pliku manifestu Android. Proszę wspomnieć,

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

Mam nadzieję, że to pomaga.