第二天就是你要做的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;
}
}
下面是我第一天完成后的界面:
发送的结果: