ボタンを押すと、端末の電話帳に登録されている電話番号を取得して、それを保存し、着信があるたびに保存した電話番号と突き合わせる仕組みを作りたいと思っています。
ContentResolverから電話番号をcursor型で取得し、それをString型の配列に格納し、データを保存する。
しかし、どうも格納できていないのです。
これがコードです。
ContentResolver contentResolver = getContentResolver(); Cursor addressTable = contentResolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, // データの種類 null, // 項目 ContactsContract.Data.MIMETYPE + " = ?", // フィルタ条件 new String[]{ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE}, // フィルタ用パラメータ null // ソート ); addressTable.moveToFirst(); int count = addressTable.getCount(); int index = addressTable.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); String[] phoneNumberList = new String[count]; for(int i = 0; i <count; i++) { while (index < count) { phoneNumberList[i] = addressTable.getString(index); addressTable.moveToNext(); } } SaveData(); Dialog(title, phoneNumberList);
きちんと格納できているか、Dialogメソッドを別に作って表示をこころみたのですが、内容が出力されないのです。
ちなみに、Dialog()はこうです。
public void Dialog(String title, String[] phoneLists) {
this.alertDialogBuilder.setTitle(title);
this.alertDialogBuilder.setItems(phoneLists, this);
AlertDialog builder = this.alertDialogBuilder.create();
builder.show();
}
ContentResolverの使い方が間違っているのでしょうか?
それともString型の配列にする方法が悪いのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/24 21:55 編集
2017/03/24 22:27
2017/03/27 05:12
2017/03/27 05:18