电话簿设置(即仅联系过滤器)android代码示例

时间:2013-03-11 11:32:16

标签: android

我想在我的应用程序中隐藏电话簿中没有电话号码的所有联系人。 就像电话簿一样,当你去电话簿时 - >设置有一个复选框,指出“仅限电话号码的联系人”我想在我的应用程序中实现此功能

我需要一个方法(代码)来导航用户 电话簿 - >设置(活动)(系统应用)

来自我的申请活动。

或更糟的情况是通过数据库隐藏所有没有电话号码的联系人。这样电话本可以过滤掉。

目前我找到了

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 123);

以上代码打开电话簿,但我想打开电话簿 - >设置页面。

总之,我想从我的应用程序中将电话簿内容“与电话号码联系”

3 个答案:

答案 0 :(得分:4)

  

我需要一种方法(代码)来将用户导航到电话簿 - >设置(活动)(系统应用)

有数百甚至数千部Android手机。没有必要与他们的“电话簿”应用程序相同。这些“电话簿”应用程序都不一定具有您所寻求的功能 - 有些可能,有些可能没有。并且,最有可能的是,没有一个文档和支持的Intent结构可以访问应用程序中的屏幕来控制它们可能有或没有的设置。

  

我想在我的应用程序中隐藏电话簿中没有电话号码的所有联系人

然后,您需要不使用“电话簿”应用,而是通过READ_CONTACTS权限和ContactsContract ContentProvider自行显示联系人。

答案 1 :(得分:1)

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);

答案 2 :(得分:0)

好吧,我已经成功开发了Android的联系人应用程序作为我的主要项目。我相信这很简单。这是代码我是如何做到的。

Cursor c = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
                                           null,
                                           ContactsContract.Contacts.HAS_PHONE_NUMBER + " = 1", 
                                           null, 
                                           ContactsContract.Contacts.DISPLAY_NAME+" COLLATE LOCALIZED ASC");

            mAdapter = new MyAdapter(this,
                       R.layout.single_cell,
                       c, 
                       new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME},
                       new int[]{R.id.disp_name},
                       CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);

            listview.setAdapter(mAdapter);

而且,在MyAdapter中,我扩展了SimpleCursorAdapter并使用了bindView()来利用SimpleCursorAdapter的效率。但是,您需要获得阅读联系人的权限。在你的android-manifest文件中。请提一下,

<uses-permission android:name="android.permission.READ_CONTACTS"/>

希望,这有帮助。