私の目標は、電話番号の連絡先をユーザーに表示し、ユーザーがローカルに保存する連絡先をほとんど選択しないようにすることです。AndroidデバイスのACTION_PICKインテントを使用して電話番号だけの連絡先を表示
以下のメソッドでは、ContactsContract.Contacts.CONTENT_URIの代わりにさまざまなオプションを使用しています。しかし、私はたくさんの連絡先(多くは電子メールIDだけの迷惑メールです)が表示されています。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_selector);
((Button)findViewById(R.id.btnphonecontactlist)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent contactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(contactIntent, 1);
}
});
}
Iは、上記の方法のパラメータとしてContactsContract.Contacts.CONTENT_URIを渡すハンドラメソッド以下の場合には、文字列[](コメント示されている)投影パラメータとしてクエリメソッドの、メソッドが失敗した場合でjava.lang.IllegalArgumentException。私が下のメソッドでnullを渡すと、私が選択した連絡先が何であれ、電話番号や電子メールに関連する列は見つかりません。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data != null)
{
Uri uri = data.getData();
if(uri != null)
{
Cursor c = null;
try
{
c = getContentResolver().query(uri, null
// new String[] {
//ContactsContract.CommonDataKinds.Phone.NUMBER,
//ContactsContract.CommonDataKinds.Phone.TYPE},
, null, null, null);
if(c != null && c.moveToFirst())
{
String number = c.getString(0);
String type = c.getString(1);
}
}
finally
{
if(c != null && !c.isClosed())
c.close();
}
}
}
}
、ユーザが電話帳になり、利用可能な電話番号を持っているとき、通常、ユーザーに見える唯一の連絡先を表示する方法はありますか?
私はstackoverflowや他のサイトのすべてのスレッドを通過しようとしましたが、多くの人が問題を投稿していますが、この問題を解決するソリューションは見つかりませんでした。私はAndroidプラットフォームではあまり仕事をしていないし、細かい部分を見逃しているかもしれないし、これを達成するための簡単な方法が必要だと思う。
お勧めです。あなたの助けに感謝。
ありがとうございました。
は私のANSは助けたのですか? –