[技术| 编程·课件·Linux] Android智能拨号简易实现

xywhere · 发布于 2013-07-13 12:41 · 7353 次阅读
1665
本帖最后由 xywhere 于 2013-7-15 09:25 编辑

主要功能就是联系人姓名和电话自动补全
比如:输入 135 则会提示所有135开头的电话号
比如:输入 王 下面会提示所有性王的人的电话
界面比较简单,功能也比较简单,核心功能实现依赖于系统提供的控件AutoCompleteTextView

[Java] 纯文本查看 复制代码
public class MainActivity extends Activity implements OnClickListener {

        private AutoCompleteTextView act_text;
        private Button bt_call, bt_cancel;
        
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                // 初始化控件
                setView();
                setListener();
                // 获取联系人数组,配置适配器
                String[] names = getContacts();
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.item, names);
                act_text.setAdapter(adapter);

        }
        private void setView()
        {
                bt_call = (Button) findViewById(R.id.call);
                bt_cancel = (Button) findViewById(R.id.cancel);
                act_text = (AutoCompleteTextView) findViewById(R.id.name);
        }
        private void setListener()
        {
                bt_call.setOnClickListener(this);
                bt_cancel.setOnClickListener(this);
        }
        @Override
        public void onClick(View v) {
                
                switch(v.getId())
                {
                case R.id.call:
                        String contacts = act_text.getText().toString();
                        String number = getNumber(contacts);
                        Intent intent=new Intent("android.intent.action.CALL",Uri.parse("tel:"+number.trim()));
                        startActivity(intent);
                        break;
                case R.id.cancel:
                        act_text.setText("");
                        break;
                }
        }
        // 将联系人信息中的电话号提取出来
        private String getNumber(String contacts)
        {
                StringBuilder sb = new StringBuilder();
                int count = contacts.length();
                for(int i=0; i<count; i++)
                {
                        char n = contacts.charAt(i);
                        if(n >= '0' && n <= '9')
                        {
                                sb.append(n);
                        }
                }
                return sb.toString();
        }
        // 将联系人信息存储到数组中
        private String[] getContacts() {
                List<String> list = new ArrayList<String>();
                String name = "";
                ContentResolver contentResolver = getContentResolver();
                // 获得所有的联系人
                Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
                int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
                int displayNameColumn = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
                
                while( cursor.moveToNext())
                {
                        // 获得联系人的ID
                        String contactId = cursor.getString(idColumn);
                        // 获得联系人姓名
                        String disPlayName = cursor.getString(displayNameColumn);
                        name=disPlayName;
                        // 查看该联系人有多少个电话号码。如果没有这返回值为0
                        int phoneCount = cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));

                        if (phoneCount > 0)
                        {
                                // 获得联系人的电话号码列表
                                Cursor phonesCursor = getContentResolver().query(
                                        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                        null,
                                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId,
                                        null, null);
                                
                                while(phonesCursor.moveToNext())
                                {
                                        // 遍历所有的电话号码
                                        String phoneNumber = phonesCursor.getString(
                                                phonesCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                                        list.add(phoneNumber+"        "+name);
                                        list.add(name+"        "+phoneNumber);
                                }
                        }
                }

                String[] str=new String[list.size()];
                for(int i=0;i<list.size();i++)
                {
                        str[i]=list.get(i);
                }
            return str;
        }
}



Andorid拨号另一例:
android 拨号器 可用于小号互打
http://www.ruanyuan.net/forum.ph ... &tid=4966&fromuid=1
(出处: 软院网 RuanYuan.Net)





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
共收到 65 条回复
xywhere · #2 · 2013-7-13 12:42:14  回复 支持 反对
@jangwooning 看看 是你说那种吗

点评

布局文件也发一份上来,要不你就把你工程发我一份,要10学分你这个太敲诈了,我是不会下载的收到赶紧回复!万恶的版主!  详情 回复 发表于 2013-7-15 09:19
凭啥你这个 要他么的10学分?还给挂到首页去了,版主太垄断了~是,就是这个意思!我加到我那里边了,抢走了哈!  详情 回复 发表于 2013-7-15 09:06
小马 · #3 · 2013-7-13 12:48:48  回复 支持 反对
最近都喜欢发技术帖了?看得我心痒痒的

点评

这不接近开学了 吗 都开始步入正轨了 哈哈  详情 回复 发表于 2013-7-13 12:52
xywhere · #4 · 2013-7-13 12:52:39  回复 支持 反对
小马 发表于 2013-7-13 12:48
最近都喜欢发技术帖了?看得我心痒痒的

这不接近开学了 吗  都开始步入正轨了 哈哈

点评

依旧在家,各种堕落的路过。。。。。。  详情 回复 发表于 2013-7-13 22:53
要西,怪不得~  详情 回复 发表于 2013-7-13 13:44
小马 · #5 · 2013-7-13 13:44:11  回复 支持 反对
xywhere 发表于 2013-7-13 12:52
这不接近开学了 吗  都开始步入正轨了 哈哈

要西,怪不得~

点评

别听他@xywhere瞎白话~他那是闲出屎了 ,凭什么版主就能发1M以上的附件,太不公平了!  详情 回复 发表于 2013-7-15 09:09
阎魔あい · #6 · 2013-7-13 18:53:25  回复 支持 反对
你们果然都是及其爱学习的孩子。。。。我天天看动漫。。。。哎

点评

等着失业吧  详情 回复 发表于 2013-7-13 20:14
xywhere · #7 · 2013-7-13 20:14:42  回复 支持 反对
阎魔あい 发表于 2013-7-13 18:53
你们果然都是及其爱学习的孩子。。。。我天天看动漫。。。。哎

等着失业吧

点评

不要管我。。。。。  详情 回复 发表于 2013-7-14 10:37
-_-!我擦。。。好直接。。  详情 回复 发表于 2013-7-13 22:54
cfyrwang · #8 · 2013-7-13 22:53:47  回复 支持 反对
xywhere 发表于 2013-7-13 12:52
这不接近开学了 吗  都开始步入正轨了 哈哈

依旧在家,各种堕落的路过。。。。。。

点评

来论坛 就是积极向上  详情 回复 发表于 2013-7-13 23:32
cfyrwang · #9 · 2013-7-13 22:54:12  回复 支持 反对

-_-!我擦。。。好直接。。

点评

我好可怜吧。。。。。。。。  详情 回复 发表于 2013-7-14 10:38
忠言逆耳 这才是真朋友 。。哈哈  详情 回复 发表于 2013-7-13 23:30
vo_ · #10 · 2013-7-13 23:14:44  回复 支持 反对
我是不是也得等着失业了

点评

你才不是呢 。。你是 offer 一把一把的。。  详情 回复 发表于 2013-7-13 23:19
xywhere · #11 · 2013-7-13 23:19:42  回复 支持 反对
vo_ 发表于 2013-7-13 23:14
我是不是也得等着失业了

你才不是呢 。。你是 offer 一把一把的。。
xywhere · #12 · 2013-7-13 23:30:00  回复 支持 反对
cfyrwang 发表于 2013-7-13 22:54
-_-!我擦。。。好直接。。

忠言逆耳 这才是真朋友 。。哈哈
xywhere · #13 · 2013-7-13 23:32:08  回复 支持 反对
cfyrwang 发表于 2013-7-13 22:53
依旧在家,各种堕落的路过。。。。。。

来论坛 就是积极向上
阎魔あい · #14 · 2013-7-14 10:37:54  回复 支持 反对

不要管我。。。。。

点评

等着毕业 转行吧  详情 回复 发表于 2013-7-14 12:45
阎魔あい · #15 · 2013-7-14 10:38:21  回复 支持 反对
cfyrwang 发表于 2013-7-13 22:54
-_-!我擦。。。好直接。。

我好可怜吧。。。。。。。。
xywhere · #16 · 2013-7-14 12:45:11  回复 支持 反对
阎魔あい 发表于 2013-7-14 10:37
不要管我。。。。。

等着毕业 转行吧

点评

我的人生就这么完了吗。。。。。。  详情 回复 发表于 2013-7-14 16:01
阎魔あい · #17 · 2013-7-14 16:01:05  回复 支持 反对
xywhere 发表于 2013-7-14 12:45
等着毕业 转行吧

我的人生就这么完了吗。。。。。。

点评

补补课啥的 还能有救 你应该被建议了吧?  详情 回复 发表于 2013-7-14 16:23
xywhere · #18 · 2013-7-14 16:23:06  回复 支持 反对
阎魔あい 发表于 2013-7-14 16:01
我的人生就这么完了吗。。。。。。

补补课啥的 还能有救 你应该被建议了吧?

点评

好吧。。。。没得救了。。。。我不建议补课。。。。。  详情 回复 发表于 2013-7-14 17:05
阎魔あい · #19 · 2013-7-14 17:05:13  回复 支持 反对
xywhere 发表于 2013-7-14 16:23
补补课啥的 还能有救 你应该被建议了吧?

好吧。。。。没得救了。。。。我不建议补课。。。。。

点评

自救啊 。。  详情 回复 发表于 2013-7-15 07:19
zj220223 · #20 · 2013-7-14 22:17:27  回复 支持 反对
@阎魔あい  感觉你好像被鄙视了。。。
xywhere · #21 · 2013-7-15 07:19:43  回复 支持 反对
阎魔あい 发表于 2013-7-14 17:05
好吧。。。。没得救了。。。。我不建议补课。。。。。

自救啊 。。

点评

亲~~~你说你成功申请到补课的几率是多大呢~~~  详情 回复 发表于 2013-7-15 10:23
亲~~~你说你成功申请到补课的几率是多大呢~~~  详情 回复 发表于 2013-7-15 10:23
xywhere · #22 · 2013-7-15 07:20:05  回复 支持 反对
@阎魔あい  我可没鄙视你

点评

你需要特意强调一下吗???!!!昂??!!!!  详情 回复 发表于 2013-7-15 10:23
jangwooning · #23 · 2013-7-15 09:06:33  回复 支持 反对
xywhere 发表于 2013-7-13 12:42
@jangwooning 看看 是你说那种吗

凭啥你这个 要他么的10学分?还给挂到首页去了,版主太垄断了~是,就是这个意思!我加到我那里边了,抢走了哈!

点评

不放首页 怎么能让你看见啊。。  详情 回复 发表于 2013-7-15 09:12
jangwooning · #24 · 2013-7-15 09:09:25  回复 支持 反对

别听他@xywhere瞎白话~他那是闲出屎了 ,凭什么版主就能发1M以上的附件,太不公平了!

点评

什么叫瞎白话啊 。。。俺只是小版主 他们可是超级版主 更大附件哦 去说他们吧 。。  详情 回复 发表于 2013-7-15 10:36
其实那天申请版主你也可以努力一下的,可惜,人不在  详情 回复 发表于 2013-7-15 10:29
xywhere · #25 · 2013-7-15 09:12:22  回复 支持 反对
jangwooning 发表于 2013-7-15 09:06
凭啥你这个 要他么的10学分?还给挂到首页去了,版主太垄断了~是,就是这个意思!我加到我那里 ...

不放首页 怎么能让你看见啊。。
jangwooning · #26 · 2013-7-15 09:19:20  回复 支持 反对
xywhere 发表于 2013-7-13 12:42
@jangwooning 看看 是你说那种吗

布局文件也发一份上来,要不你就把你工程发我一份,要10学分你这个太敲诈了,我是不会下载的收到赶紧回复!万恶的版主!

点评

这一个个的 都太尼玛穷了 已改成2学分了  详情 回复 发表于 2013-7-15 09:25
xywhere · #27 · 2013-7-15 09:25:54  回复 支持 反对
jangwooning 发表于 2013-7-15 09:19
布局文件也发一份上来,要不你就把你工程发我一份,要10学分你这个太敲诈了,我是不会下载的收 ...

这一个个的 都太尼玛穷了 已改成2学分了   

点评

要不这样,我下载一次,然后你上我的帖子里边再给我加5分 怎么样?  详情 回复 发表于 2013-7-15 10:17
jangwooning · #28 · 2013-7-15 10:17:05  回复 支持 反对
xywhere 发表于 2013-7-15 09:25
这一个个的 都太尼玛穷了 已改成2学分了

要不这样,我下载一次,然后你上我的帖子里边再给我加5分 怎么样?
阎魔あい · #29 · 2013-7-15 10:23:03  回复 支持 反对

亲~~~你说你成功申请到补课的几率是多大呢~~~

点评

俺已经成功申请到英语了 保底了 嘿嘿嘿  详情 回复 发表于 2013-7-15 10:33
阎魔あい · #30 · 2013-7-15 10:23:16  回复 支持 反对

亲~~~你说你成功申请到补课的几率是多大呢~~~

点评

你干脆去申请日语吧 我看你适合  详情 回复 发表于 2013-7-15 10:33
阎魔あい · #31 · 2013-7-15 10:23:40  回复 支持 反对
xywhere 发表于 2013-7-15 07:20
@阎魔あい  我可没鄙视你

你需要特意强调一下吗???!!!昂??!!!!

点评

楼上说我鄙视你 我可没 哈哈  详情 回复 发表于 2013-7-15 10:31
小马 · #32 · 2013-7-15 10:29:47  回复 支持 反对
jangwooning 发表于 2013-7-15 09:09
别听他@xywhere瞎白话~他那是闲出屎了 ,凭什么版主就能发1M以上的附件,太不公平了!

其实那天申请版主你也可以努力一下的,可惜,人不在

点评

马哥 你又提我伤心的往事!下次遇见这种事情你打我电话  详情 回复 发表于 2013-7-15 11:03
xywhere · #33 · 2013-7-15 10:31:48  回复 支持 反对
阎魔あい 发表于 2013-7-15 10:23
你需要特意强调一下吗???!!!昂??!!!!

楼上说我鄙视你  我可没 哈哈

点评

别找借口了!!!!我恨透了你们这群人!!!!  详情 回复 发表于 2013-7-15 10:57
xywhere · #34 · 2013-7-15 10:33:30  回复 支持 反对
阎魔あい 发表于 2013-7-15 10:23
亲~~~你说你成功申请到补课的几率是多大呢~~~

俺已经成功申请到英语了  保底了 嘿嘿嘿

点评

你居然申请到了????这么速度。。。。。那@vo_ 呢 咋样了  详情 回复 发表于 2013-7-15 10:56
xywhere · #35 · 2013-7-15 10:33:46  回复 支持 反对
阎魔あい 发表于 2013-7-15 10:23
亲~~~你说你成功申请到补课的几率是多大呢~~~

你干脆去申请日语吧 我看你适合

点评

我也想过这个问题~~~可是一个月也学不到啥。。。。。。再说了,学这么多年英语看美国电影也还得看字幕。。。。。。我放弃了。。。。看动漫看字幕没啥不好的~~~~  详情 回复 发表于 2013-7-15 10:55
xywhere · #36 · 2013-7-15 10:36:02  回复 支持 反对
jangwooning 发表于 2013-7-15 09:09
别听他@xywhere瞎白话~他那是闲出屎了 ,凭什么版主就能发1M以上的附件,太不公平了!

什么叫瞎白话啊 。。。俺只是小版主 他们可是超级版主 更大附件哦 去说他们吧 。。

点评

我为了上传一个小附件,一个劲的删东西,麻烦死了整死超级版主  详情 回复 发表于 2013-7-15 11:05
阎魔あい · #37 · 2013-7-15 10:55:21  回复 支持 反对
xywhere 发表于 2013-7-15 10:33
你干脆去申请日语吧 我看你适合

我也想过这个问题~~~可是一个月也学不到啥。。。。。。再说了,学这么多年英语看美国电影也还得看字幕。。。。。。我放弃了。。。。看动漫看字幕没啥不好的~~~~

点评

你专业课不补 ? 真想转行啊。。  详情 回复 发表于 2013-7-15 11:00
阎魔あい · #38 · 2013-7-15 10:56:13  回复 支持 反对
xywhere 发表于 2013-7-15 10:33
俺已经成功申请到英语了  保底了 嘿嘿嘿

你居然申请到了????这么速度。。。。。那@vo_ 呢   咋样了

点评

当然也申请到了被  详情 回复 发表于 2013-7-15 11:02
阎魔あい · #39 · 2013-7-15 10:57:07  回复 支持 反对
xywhere 发表于 2013-7-15 10:31
楼上说我鄙视你  我可没 哈哈

别找借口了!!!!我恨透了你们这群人!!!!
xywhere · #40 · 2013-7-15 11:00:51  回复 支持 反对
阎魔あい 发表于 2013-7-15 10:55
我也想过这个问题~~~可是一个月也学不到啥。。。。。。再说了,学这么多年英语看美国电影也还得看字幕。 ...

你专业课不补 ? 真想转行啊。。

点评

我要学车。。。。要不再也没机会了。。。。再说也不一定能申请到。。。  详情 回复 发表于 2013-7-15 11:21
xywhere · #41 · 2013-7-15 11:02:50  回复 支持 反对
阎魔あい 发表于 2013-7-15 10:56
你居然申请到了????这么速度。。。。。那@vo_ 呢   咋样了

当然也申请到了被

点评

哎呦喂~~~~不好说啥了哈。。。。。。  详情 回复 发表于 2013-7-15 11:20
xywhere · #42 · 2013-7-15 11:03:22  回复 支持 反对
@阎魔あい  我真没鄙视你
jangwooning · #43 · 2013-7-15 11:03:59  回复 支持 反对
小马 发表于 2013-7-15 10:29
其实那天申请版主你也可以努力一下的,可惜,人不在

马哥 你又提我伤心的往事!下次遇见这种事情你打我电话

点评

去我Q留你电话  详情 回复 发表于 2013-7-18 20:40
jangwooning · #44 · 2013-7-15 11:05:07  回复 支持 反对
xywhere 发表于 2013-7-15 10:36
什么叫瞎白话啊 。。。俺只是小版主 他们可是超级版主 更大附件哦 去说他们吧 。。

我为了上传一个小附件,一个劲的删东西,麻烦死了整死超级版主
阎魔あい · #45 · 2013-7-15 11:20:55  回复 支持 反对
xywhere 发表于 2013-7-15 11:02
当然也申请到了被

哎呦喂~~~~不好说啥了哈。。。。。。
阎魔あい · #46 · 2013-7-15 11:21:59  回复 支持 反对
xywhere 发表于 2013-7-15 11:00
你专业课不补 ? 真想转行啊。。

我要学车。。。。要不再也没机会了。。。。再说也不一定能申请到。。。

点评

都是借口。。  详情 回复 发表于 2013-7-15 11:39
runksun · #47 · 2013-7-15 11:27:51  回复 支持 反对
顶一下……对android软件开发确实研究不多

点评

应用软件 都是一个套路。 。。  详情 回复 发表于 2013-7-15 11:39
xywhere · #48 · 2013-7-15 11:39:14  回复 支持 反对
runksun 发表于 2013-7-15 11:27
顶一下……对android软件开发确实研究不多

应用软件 都是一个套路。 。。

点评

哈哈,撸主说的有道理呀……对java层的开发实在兴趣不大呀  详情 回复 发表于 2013-7-15 11:40
xywhere · #49 · 2013-7-15 11:39:50  回复 支持 反对
阎魔あい 发表于 2013-7-15 11:21
我要学车。。。。要不再也没机会了。。。。再说也不一定能申请到。。。

都是借口。。

点评

好吧好吧借口。。。。。真是的老吐槽我  详情 回复 发表于 2013-7-15 12:05
runksun · #50 · 2013-7-15 11:40:03  回复 支持 反对
xywhere 发表于 2013-7-15 11:39
应用软件 都是一个套路。 。。

哈哈,撸主说的有道理呀……对java层的开发实在兴趣不大呀
回帖
B Color Image Link Quote Code Smilies
Command + Enter
快速回复 返回顶部 返回列表