Android智能拨号简易实现
本帖最后由 xywhere 于 2013-7-15 09:25 编辑主要功能就是联系人姓名和电话自动补全
比如:输入 135 则会提示所有135开头的电话号
比如:输入 王 下面会提示所有性王的人的电话
界面比较简单,功能也比较简单,核心功能实现依赖于系统提供的控件AutoCompleteTextView
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;
for(int i=0;i<list.size();i++)
{
str=list.get(i);
}
return str;
}
}
static/image/hrline/2.gif
Andorid拨号另一例:
android 拨号器 可用于小号互打
http://www.ruanyuan.net/forum.ph ... &tid=4966&fromuid=1
(出处: 软院网 RuanYuan.Net)
@jangwooning 看看 是你说那种吗 最近都喜欢发技术帖了?看得我心痒痒的 小马 发表于 2013-7-13 12:48
最近都喜欢发技术帖了?看得我心痒痒的
这不接近开学了 吗都开始步入正轨了 哈哈{:5_124:} xywhere 发表于 2013-7-13 12:52
这不接近开学了 吗都开始步入正轨了 哈哈
要西,怪不得~ 你们果然都是及其爱学习的孩子。。。。我天天看动漫。。。。哎 阎魔あい 发表于 2013-7-13 18:53
你们果然都是及其爱学习的孩子。。。。我天天看动漫。。。。哎
等着失业吧 {:5_148:} xywhere 发表于 2013-7-13 12:52
这不接近开学了 吗都开始步入正轨了 哈哈
依旧在家,各种堕落的路过。。。。。。 xywhere 发表于 2013-7-13 20:14
等着失业吧
-_-!我擦。。。好直接。。 我是不是也得等着失业了{:7_266:} vo_ 发表于 2013-7-13 23:14
我是不是也得等着失业了
{:5_136:} 你才不是呢 。。你是 offer 一把一把的。。 cfyrwang 发表于 2013-7-13 22:54
-_-!我擦。。。好直接。。
忠言逆耳 这才是真朋友 。。哈哈 cfyrwang 发表于 2013-7-13 22:53
依旧在家,各种堕落的路过。。。。。。
来论坛 就是积极向上 xywhere 发表于 2013-7-13 20:14
等着失业吧
{:7_312:}不要管我。。。。。 cfyrwang 发表于 2013-7-13 22:54
-_-!我擦。。。好直接。。
我好可怜吧。。。。。。。。 阎魔あい 发表于 2013-7-14 10:37
不要管我。。。。。
等着毕业 转行吧 {:5_136:} xywhere 发表于 2013-7-14 12:45
等着毕业 转行吧
{:7_234:}我的人生就这么完了吗。。。。。。 阎魔あい 发表于 2013-7-14 16:01
我的人生就这么完了吗。。。。。。
补补课啥的 还能有救 你应该被建议了吧? xywhere 发表于 2013-7-14 16:23
补补课啥的 还能有救 你应该被建议了吧?
好吧。。。。没得救了。。。。我不建议补课。。。。。 @阎魔あい感觉你好像被鄙视了。。。 阎魔あい 发表于 2013-7-14 17:05
好吧。。。。没得救了。。。。我不建议补课。。。。。
自救啊 。。 @阎魔あい我可没鄙视你 xywhere 发表于 2013-7-13 12:42
@jangwooning 看看 是你说那种吗
凭啥你这个 要他么的10学分?还给挂到首页去了,版主太垄断了{:7_292:}~是,就是这个意思!我加到我那里边了,抢走了哈! 小马 发表于 2013-7-13 13:44
要西,怪不得~
别听他@xywhere瞎白话~他那是闲出屎了{:7_274:} ,凭什么版主就能发1M以上的附件,太不公平了! jangwooning 发表于 2013-7-15 09:06
凭啥你这个 要他么的10学分?还给挂到首页去了,版主太垄断了~是,就是这个意思!我加到我那里 ...
不放首页 怎么能让你看见啊。。{:5_136:} xywhere 发表于 2013-7-13 12:42
@jangwooning 看看 是你说那种吗
布局文件也发一份上来,要不你就把你工程发我一份,要10学分你这个太敲诈了,我是不会下载的{:7_267:}收到赶紧回复!万恶的版主! jangwooning 发表于 2013-7-15 09:19
布局文件也发一份上来,要不你就把你工程发我一份,要10学分你这个太敲诈了,我是不会下载的收 ...
这一个个的 都太尼玛穷了 已改成2学分了 {:7_274:} xywhere 发表于 2013-7-15 09:25
这一个个的 都太尼玛穷了 已改成2学分了
要不这样,我下载一次,然后你上我的帖子里边再给我加5分 怎么样?{:7_267:} xywhere 发表于 2013-7-15 07:19
自救啊 。。
亲~~~你说你成功申请到补课的几率是多大呢~~~ xywhere 发表于 2013-7-15 07:19
自救啊 。。
亲~~~你说你成功申请到补课的几率是多大呢~~~ xywhere 发表于 2013-7-15 07:20
@阎魔あい我可没鄙视你
你需要特意强调一下吗???!!!昂??!!!! jangwooning 发表于 2013-7-15 09:09
别听他@xywhere瞎白话~他那是闲出屎了 ,凭什么版主就能发1M以上的附件,太不公平了!
其实那天申请版主你也可以努力一下的,可惜,人不在 阎魔あい 发表于 2013-7-15 10:23
你需要特意强调一下吗???!!!昂??!!!!
楼上说我鄙视你我可没 哈哈 阎魔あい 发表于 2013-7-15 10:23
亲~~~你说你成功申请到补课的几率是多大呢~~~
俺已经成功申请到英语了保底了 嘿嘿嘿 阎魔あい 发表于 2013-7-15 10:23
亲~~~你说你成功申请到补课的几率是多大呢~~~
你干脆去申请日语吧 我看你适合 jangwooning 发表于 2013-7-15 09:09
别听他@xywhere瞎白话~他那是闲出屎了 ,凭什么版主就能发1M以上的附件,太不公平了!
什么叫瞎白话啊 。。。俺只是小版主 他们可是超级版主 更大附件哦 去说他们吧 。。 xywhere 发表于 2013-7-15 10:33
你干脆去申请日语吧 我看你适合
我也想过这个问题~~~可是一个月也学不到啥。。。。。。再说了,学这么多年英语看美国电影也还得看字幕。。。。。。我放弃了。。。。看动漫看字幕没啥不好的~~~~{:7_282:} xywhere 发表于 2013-7-15 10:33
俺已经成功申请到英语了保底了 嘿嘿嘿
你居然申请到了????这么速度。。。。。那@vo_ 呢 咋样了 xywhere 发表于 2013-7-15 10:31
楼上说我鄙视你我可没 哈哈
别找借口了!!!!{:7_318:}我恨透了你们这群人!!!! 阎魔あい 发表于 2013-7-15 10:55
我也想过这个问题~~~可是一个月也学不到啥。。。。。。再说了,学这么多年英语看美国电影也还得看字幕。 ...
你专业课不补 ? 真想转行啊。。 阎魔あい 发表于 2013-7-15 10:56
你居然申请到了????这么速度。。。。。那@vo_ 呢 咋样了
当然也申请到了被 {:5_136:} @阎魔あい我真没鄙视你 小马 发表于 2013-7-15 10:29
其实那天申请版主你也可以努力一下的,可惜,人不在
{:7_315:}马哥 你又提我伤心的往事!下次遇见这种事情你打我电话{:7_312:} xywhere 发表于 2013-7-15 10:36
什么叫瞎白话啊 。。。俺只是小版主 他们可是超级版主 更大附件哦 去说他们吧 。。
我为了上传一个小附件,一个劲的删东西,麻烦死了{:5_146:}整死超级版主 xywhere 发表于 2013-7-15 11:02
当然也申请到了被
哎呦喂~~~~不好说啥了哈。。。。。。 xywhere 发表于 2013-7-15 11:00
你专业课不补 ? 真想转行啊。。
我要学车。。。。要不再也没机会了。。。。再说也不一定能申请到。。。 顶一下……对android软件开发确实研究不多 runksun 发表于 2013-7-15 11:27
顶一下……对android软件开发确实研究不多
应用软件 都是一个套路。 。。 阎魔あい 发表于 2013-7-15 11:21
我要学车。。。。要不再也没机会了。。。。再说也不一定能申请到。。。
都是借口。。 xywhere 发表于 2013-7-15 11:39
应用软件 都是一个套路。 。。
哈哈,撸主说的有道理呀……对java层的开发实在兴趣不大呀
页:
[1]
2