Il mio obiettivo è visualizzare solo i contatti con numero di telefono per l'utente e consentire all'utente di selezionare alcuni contatti che voglio memorizzare localmente.Visualizzazione di contatti solo con numeri di telefono utilizzando ACTION_PICK intento nel dispositivo Android
Ho usato varie opzioni al posto di ContactsContract.Contacts.CONTENT_URI nel metodo seguente. Ma sto ricevendo molti dei contatti (molti sono spazzatura con solo e-mail) visualizzati.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_selector);
((Button)findViewById(R.id.btnphonecontactlist)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent contactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(contactIntent, 1);
}
});
}
Se passo ContactsContract.Contacts.CONTENT_URI come parametro per il metodo di cui sopra e, in caso di sotto metodo del gestore, lo String [] per il metodo query come parametri di proiezione (che vengono visualizzati commentato), il metodo non riesce con java.lang.IllegalArgumentException. Se passo null in seguito al metodo, quindi qualunque contatto seleziono, non trovo nessuna colonna relativa al numero di telefono o email.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data != null)
{
Uri uri = data.getData();
if(uri != null)
{
Cursor c = null;
try
{
c = getContentResolver().query(uri, null
// new String[] {
//ContactsContract.CommonDataKinds.Phone.NUMBER,
//ContactsContract.CommonDataKinds.Phone.TYPE},
, null, null, null);
if(c != null && c.moveToFirst())
{
String number = c.getString(0);
String type = c.getString(1);
}
}
finally
{
if(c != null && !c.isClosed())
c.close();
}
}
}
}
Esiste un modo per visualizzare solo i contatti visibili per l'utente di solito quando l'utente va a rubrica e che ha i numeri di telefono a disposizione?
Ho provato a esaminare tutti i thread in StackOverflow e altri siti, ma non sono riuscito a trovare alcuna soluzione che risolva il problema, sebbene molte persone abbiano pubblicato il problema. Non ho lavorato molto con la piattaforma Android e potrei essermi perso alcuni dettagli minori e credo che ci debba essere un modo semplice per raggiungere questo obiettivo.
Si prega di suggerire. Apprezzo il tuo aiuto.
Grazie.
ha aiutato la mia ans? –