うみの河童

コンタクトリスト(電話帳)を検索する

Androidって日本語のドキュメントが少ない。
英語がわからない自分には時間がかかってしまった。
強引だけど、
電話番号をコンタクトリスト(電話帳)で検索して
その結果を返すというのを作ってみた。

[sourcecode language="java"]
String[] proj = new String[]{
Phone._ID,
Phone.DISPLAY_NAME,
Phone.NUMBER
};
[/sourcecode]
ココではコンタクトリストから読み込みたい項目をStringの配列でつくる。
Phone._IDはそのまんまID Phone.DISPLAY_NAMEは画面に表示させる名前
(黒木 メイサ見たいな感じで姓+半角スペース+名で表示される)
Phone.NUMBERは電話番号。

[sourcecode language="java"]
Uri _uri = Uri.withAppendedPath(
Phone.CONTENT_FILTER_URI,
Uri.encode("0123456789")
);
[/sourcecode]
ココでは検索するデータがどこにあるか、どういうデータで検索するかを 指定する?(確信なし 笑)

[sourcecode language="java"]
Cursor _cursor = managedQuery(
_uri, proj, null, null, null);
[/sourcecode]
ココで上の2つを指定。
Cursorってのはデータが入っている位置(アドレス??)かな?

[sourcecode language="java"]
_cursor.getCount()
[/sourcecode]
あとはこいつで検索結果の数(int)がとれるから
条件式を書いてそれぞれの命令を書くと。

ココまでで検索関係終了!!
詳しくはわかりません。ゴメンナサイ。

次は
新しい連絡先の追加をやってみるよーーー

[sourcecode language="java"]
package jp.testaddress;

import jp.testaddress.R.id;
import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class TestAddress extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

//ボタン
Button button = (Button)findViewById(R.id.btn);
button.setOnClickListener(this);
}

@Override
public void onClick(View v) {
//押されたボタンがbtnだったら
if(v.getId() == R.id.btn){

String str = "0123456789";

//登録済みか検索する
String[] proj = new String[]{
Phone._ID,
Phone.DISPLAY_NAME,
Phone.NUMBER
};

Uri _uri = Uri.withAppendedPath(
Phone.CONTENT_FILTER_URI,
Uri.encode(str)
);

Cursor _cursor = managedQuery(
_uri, proj, null, null, null);

//検索に引っかかった
if(_cursor.getCount() >= 1){
}
//検索にヒットしなかった
else{
//name.setText(str + "は登録されていません");
}
}
}
}
[/sourcecode]