2011-05-15 25 views
20

Estoy tratando de desarrollar una aplicación simple usando Android Scripting y Python.Cómo puedo obtener el nombre de contacto con su número

Ahora, tengo un número de teléfono, y quiero saber qué contacto tiene ese número. Puedo hacer un contactGet() y buscar números, pero hay tantos programas que usan esa función que, creo que hay una manera más fácil para eso.

Hay una pregunta con el mismo problema, pero Java, ¿hay un equivalente de Python? Search contact by phone number

¿Hay una manera simple de lograr eso?

Se agradece cualquier código de ejemplo.

Editar, después de unos días sin respuesta, decidí cambiar la pregunta un poco: ¿Cuál es la mejor manera de buscar un número para una lista que obtuve con contactsGet()?

Respuesta

1

Este es un problema común con las capas de abstracción. La capa no resume una funcionalidad, herramienta o estuche específico que le gustaría usar. En este caso, sin embargo, parece que no todas las esperanzas se pierden. Parece que la api scripting de Android es un proyecto de código abierto. ¿Por qué no contribuir con un parche que proporcionaría esta habilidad al proyecto?

Puedo contribuir con un parche en algún momento en el futuro, pero si es importante para ti, ¡podrías hacer lo mismo antes que yo y seguir tu camino!

+0

Esa es la única respuesta que incluye una posible solución a mi problema :). Parece que no hay otra manera. Gracias :). – utdemir

1
package com.slk.example.CursorActivity; 
import android.app.ListActivity; 
import android.content.Context; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.provider.Contacts.Phones; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.CursorAdapter; 
import android.widget.TextView; 

public class CursorActivity extends ListActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Cursor contactsCursor = this.managedQuery(Phones.CONTENT_URI, null, null, null, null); 
     this.setListAdapter(new MyContactsAdapter(this,contactsCursor)); 
    } 

    private class MyContactsAdapter extends CursorAdapter{ 
     private Cursor mCursor; 
     private Context mContext; 
     private final LayoutInflater mInflater; 

     public MyContactsAdapter(Context context, Cursor cursor) { 
      super(context, cursor, true); 
      mInflater = LayoutInflater.from(context); 
      mContext = context; 
     } 

     @Override 
     public void bindView(View view, Context context, Cursor cursor) { 
      TextView t = (TextView) view.findViewById(R.id.txtName); 
      t.setText(cursor.getString(cursor.getColumnIndex(Phones.NAME))); 

      t = (TextView) view.findViewById(R.id.txtDisplayName); 
      t.setText(cursor.getString(cursor.getColumnIndex(Phones.DISPLAY_NAME))); 

      t = (TextView) view.findViewById(R.id.txtPhone); 
      t.setText(cursor.getString(cursor.getColumnIndex(Phones.NUMBER))); 
     } 

     @Override 
     public View newView(Context context, Cursor cursor, ViewGroup parent) { 
      final View view = mInflater.inflate(R.layout.main, parent, false); 
      return view; 
     } 
    } 
} 
+1

La pregunta es su equivalente en Python. – utdemir

0

Es posible que desee echar un vistazo a la ContactsContract data table. Consultar con algo como esto:

Cursor c = getContentResolver().query(Data.CONTENT_URI, 
     new String[] {Data._ID, Phone.NUMBER, Phone.TYPE, Phone.LABEL}, 
         Data.RAW_CONTACT_ID + "=?" + " AND " 
         + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'", 
         new String[] {String.valueOf(rawContactId) 
     }, null) 
+1

android-scripting API no proporciona algo como esto. Esto es lo que proporciona: http://code.google.com/p/android-scripting/wiki/ApiReference – utdemir

Cuestiones relacionadas