2012-01-07 16 views
6

(UPDATE) Questo funziona su emulatore, ma non sul mio HTC leggenda :(ContentProvider Android non tornare Phone.NUMBER

Ho il seguente metodo nel mio ListActivity e non restituisce alcun valore nel cursore (getCount = 0)

posso non del tutto a capire perché. non importa che il contatto clicco su nella mia lista.

protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 
    Log.d(TAG,"onListItemClick"); 

    //get Telephone number for entry and display in Toast 
    Uri phoneUri = ContentUris.withAppendedId(Phone.CONTENT_URI, id); 
    Log.d(TAG,String.valueOf(phoneUri)); 
    String[] projection = new String[]{Phone.NUMBER}; 


    //Get Cursor 
    Cursor phoneCursor = managedQuery(phoneUri, projection, null, null, null); 

    while(phoneCursor.moveToNext()){ 
     String dspNumber; 
     String number = phoneCursor.getString(phoneCursor.getColumnIndexOrThrow(Phone.NUMBER)); 
     if(number==""){ 
      dspNumber = "No number found"; 
     }else{ 
      dspNumber = number; 
     } 

     Toast.makeText(this,dspNumber, 3000).show(); 
    } 
} 
+0

che cos'è l'API livello del tuo dispositivo? – Gnufabio

+1

prova a non usare l'id. Voglio dire, cerca di ottenere tutte le voci. Forse il problema è che stai usando un ID errato – kingston

+1

Sei sicuro di non utilizzare l'id di un'altra tabella, ad esempio la tabella raw_contact invece della tabella Dati? – kingston

risposta

0

Aggiungi Read_contacts autorizzazione manifesto.

Problemi correlati