Question

J'essaie de développer une application simple à l'aide de scripts Android et de Python.

Maintenant, j'ai un numéro de téléphone et je veux savoir quel contact a ce numéro. Je peux faire un contactsget () et rechercher des nombres, mais tant de programmes utilisent cette fonctionnalité, je pense qu'il existe un moyen plus facile pour cela.

Il y a une question avec le même problème, mais Java, y a-t-il un équivalent Python?Rechercher le contact par numéro de téléphone

Existe-t-il un moyen simple d'y parvenir?

Tout exemple de code est apprécié.

Modifier, après quelques jours sans réponse, j'ai décidé de changer un peu la question: quelle est la meilleure façon de rechercher un numéro pour une liste que j'ai obtenue avec Contactsget ()?

Était-ce utile?

La solution

Il s'agit d'un problème courant avec des couches d'abstraction. La couche n'abaisse pas une fonctionnalité, un outil ou un cas spécifiques que vous souhaitez utiliser. Dans ce cas, cependant, il semble que tout espoir ne soit pas perdu. Il semble que l'API de script Android soit un projet open source. Pourquoi ne pas contribuer un patch qui fournirait cette capacité au projet?

Je peux contribuer un tel patch à un moment donné dans le futur, mais si c'est important pour vous, vous pouvez faire de même avant moi, et être sur votre chemin!

Autres conseils

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

Vous voudrez peut-être jeter un œil au Tableau de données ContactsContract. Interrogez-le avec quelque chose comme ceci:

    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)

Vous pouvez essayer, si ce n'est pas encore, l'API de contact: http://developer.android.com/resources/articles/contacts.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top