2011-05-15 5 views
20

Android Scripting 및 Python을 사용하여 간단한 앱을 개발하려고합니다.그 사람의 전화 번호로 연락처 이름을 얻는 방법

이제 전화 번호가 있는데, 어떤 연락처에 해당 번호가 있는지 알아야합니다. contactsGet()을 사용하여 숫자를 검색 할 수는 있지만 많은 프로그램에서이 기능을 사용합니다. 더 쉬운 방법이 있다고 생각합니다.

같은 문제가있는 질문이 있지만 Java, Python과 동일한 문제가 있습니까? Search contact by phone number

간단한 방법이 있습니까?

모든 예제 코드는 높이 평가됩니다.

편집 후 며칠 동안 답변이 없으면 약간 질문을 변경하기로 결정했습니다. contactsGet()으로받은 목록의 번호를 검색하는 가장 좋은 방법은 무엇입니까?

답변

1

이 추상화 레이어 일반적인 문제입니다. 이 레이어는 사용하려는 특정 기능, 도구 또는 사례를 추상화하지 않습니다. 그러나이 경우 모든 희망이 사라지는 것은 아닙니다. 안드로이드 스크립팅 API는 오픈 소스 프로젝트입니다. 왜이 능력을 프로젝트에 제공 할 패치를 제공하지 않습니까?

나는 미래에 어느 시점에서 그러한 패치를 제공 할 수도 있지만, 중요한 경우, 내가하기 전에 똑같이 할 수 있습니다.

+0

그건 내 문제에 대한 가능한 해결책을 포함하는 유일한 대답입니다 :). 다른 방법이없는 것 같습니다. 감사 :). – 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

질문은 파이썬과 동일합니다. – utdemir

0

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) 
+1

android-scripting API는 이와 같은 것을 제공하지 않습니다. 다음은 그것이 제공하는 것입니다 : http://code.google.com/p/android-scripting/wiki/ApiReference – utdemir

관련 문제