没有经验三天开发一个Android app(第二天 demo级)

第二天就是你要做的app的实现了。

我想做的app是短信群发,这个app要有功能:

1. 分组功能,组可以增加,删除,重命名,给组中追加联系人/删除联系人;

2. 短信可以发给某一个分组或者所有的联系人,在发送短信之前要加上联系人的名字;

3. 分组信息要持久化


从需求来看这里比较重要的就是获得联系人信息和发送短信;

然后google android get all contact 和 android send message就可以找到相应的代码段来实现这两个功能。

以下是我现在的代码中使用的code:

获得所有的联系人:

	public static List<Contact> getAllContact(ContentResolver cr) {
		List<Contact> contacts = new ArrayList<Contact>();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        if(cur.getCount() <= 0) {
        	return contacts;
        } 
        
		while (cur.moveToNext()) {
			String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
			String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
			
			Contact contact = new Contact();
			contact.name = name;
			
			if (Integer.parseInt(cur.getString(cur
							.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
				Cursor pCur = cr.query(
						ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
						null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID
								+ " = ?", new String[] { id }, null);
				while (pCur.moveToNext()) {
					String phoneNo = pCur.getString(pCur
									.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
					contact.telNumbers.add(phoneNo);
				}
				pCur.close();
			}
			
			contacts.add(contact);
		}
		
		return contacts;
	}

发送短信:

	private void sendMessage(Contact contact, String text) {
		if (contact.telNumbers.size() <= 0) {
			return;
		}
		
		String sms = "Hi, " + contact.name + ". " + text;

		try {
			SmsManager smsManager = SmsManager.getDefault();
			smsManager.sendTextMessage(contact.telNumbers.get(0), null, sms, null, null);
			contact.isSend = true;
		} catch (Exception e) {
			contact.isSend = false;
		}
	}

下面是我第一天完成后的界面:

发送的结果:


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值