【问题标题】:How can I get contact name with his/her number如何使用他/她的号码获取联系人姓名
【发布时间】:2011-08-25 23:24:13
【问题描述】:

我正在尝试使用 Android 脚本和 Python 开发一个简单的应用程序。

现在,我有一个电话号码,我想知道哪个联系人有这个号码。我可以执行 contactsGet() 并搜索数字,但有很多程序使用该功能,我认为有一种更简单的方法。

有一个同样问题的问题,但是Java,是否有Python等价物? Search contact by phone number

有没有简单的方法来实现这一点?

感谢任何示例代码。

编辑,在几天没有答案之后,我决定稍微改变一下问题:在我使用contactGet() 获得的列表中搜索号码的最佳方法是什么?

【问题讨论】:

    标签: android python android-scripting


    【解决方案1】:

    这是抽象层的常见问题。该层不会抽象您想要使用的特定功能、工具或案例。然而,在这种情况下,似乎并不是所有的希望都消失了。看来android scripting api是一个开源项目。为什么不贡献一个可以为项目提供这种能力的补丁呢?

    我可能会在将来的某个时候贡献这样的补丁,但如果它对你很重要,你可以在我做之前做同样的事情,然后继续前进!

    【讨论】:

    • 这是唯一的答案,其中包括我的问题的可能解决方案:)。好像没有别的办法了。谢谢:)。
    【解决方案2】:

    如果还没有,您可以尝试 Contact API:http://developer.android.com/resources/articles/contacts.html

    【讨论】:

      【解决方案3】:

      您可能想看看ContactsContract data table。用这样的方式查询它:

          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)
      

      【讨论】:

      【解决方案4】:
      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;
              }
          }
      }
      

      【讨论】:

      • 问题是它的 Python 等价物。
      猜你喜欢
      • 2014-05-04
      • 2011-10-12
      • 2015-06-01
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多