第二天就是你要做的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;}}
下面是我第一天完成後的介面:
發送的結果: