studio programacion nombre name móviles libro desarrollo curso change cambiar aplicaciones activity android python android-scripting

nombre - manual de programacion android pdf



¿Cómo puedo obtener el nombre de contacto con su número? (4)

Estoy tratando de desarrollar una aplicación simple usando Android Scripting y Python.

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

Hay una pregunta con el mismo problema, pero Java, ¿hay un equivalente de Python? Buscar contacto por número de teléfono

¿Hay una manera simple de lograr eso?

Cualquier código de ejemplo es apreciado.

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


Es posible que desee echar un vistazo a la tabla de datos ContactsContract . Consultalo 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)


Este es un problema común con las capas de abstracción. La capa no abstrae una funcionalidad, herramienta o caso específico que le gustaría usar. En este caso, sin embargo, parece que no toda la esperanza se pierde. Parece que la API de scripting de Android es un proyecto de código abierto. ¿Por qué no aportar un parche que proporcionaría esta capacidad al proyecto?

Puedo contribuir con este parche en algún momento en el futuro, pero si es importante para usted, podría hacer lo mismo antes que yo, ¡y seguir su camino!



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; } } }