操作联系人(添加联系人,打电话,发短信)
public class TelephonyUtil { /** * 添加联系人 * @param context * @param follower */ public static void addContact(Context context,Follower follower){ Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); final ContentResolver resolver = context.getContentResolver(); ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>(); ContentProviderOperation op1 = ContentProviderOperation.newInsert(uri) .withValue("account_name", null).build(); operations.add(op1); /** * 添加姓名 */ uri = Uri.parse("content://com.android.contacts/data"); ContentProviderOperation op2 = ContentProviderOperation.newInsert(uri) .withValueBackReference("raw_contact_id", 0) .withValue("mimetype", "vnd.android.cursor.item/name") .withValue("data2", follower.getName()).build(); operations.add(op2); /** * 添加手机号码 */ ContentProviderOperation op3 = ContentProviderOperation.newInsert(uri) .withValueBackReference("raw_contact_id", 0) .withValue("mimetype", "vnd.android.cursor.item/phone_v2") .withValue("data1", follower.getPhone()).withValue("data2", "2").build(); operations.add(op3); /** * 添加email */ ContentProviderOperation op4 = ContentProviderOperation.newInsert(uri) .withValueBackReference("raw_contact_id", 0) .withValue("mimetype", "vnd.android.cursor.item/email_v2") .withValue("data1", follower.getEmail()).withValue("data2", "2").build(); operations.add(op4); /** * 将图片转换成为byte[] */ Bitmap bitmap = BitmapFactory.decodeFile("/mnt/sdcard/TravelSkyOA/followers/testimage.gif"); final ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); /** * 添加photo */ ContentProviderOperation op5 = ContentProviderOperation.newInsert(uri) .withValueBackReference("raw_contact_id", 0) .withValue("mimetype", Photo.CONTENT_ITEM_TYPE) .withValue(Photo.PHOTO, stream.toByteArray()).build(); operations.add(op5); try { resolver.applyBatch("com.android.contacts", operations); } catch (RemoteException e) { e.printStackTrace(); } catch (OperationApplicationException e) { e.printStackTrace(); } } /** * 拨打电话 * * @param context * @param phone */ public static void tel(Context context, String phone) { Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone)); context.startActivity(intent); } /** * 发送短信 * * @param context * @param phone * @param smsBody */ public static void sendSMSByPhone(Context context, String phone, String smsBody) { Uri smsToUri = Uri.parse("smsto:" + phone); Intent intent = new Intent(Intent.ACTION_SENDTO, smsToUri); intent.putExtra("sms_body", smsBody); context.startActivity(intent); } /** * SmsManager 是android.telephony.gsm.SmsManager中定义的用户管理短信应用的类。 * 开发人员不必实例化SmsManager类,只需要调用静态方法getDefault()获得SmsManager对象, * PendingIntent对象用于指向MainActivity.当用户按下‘发送短信’按键后,用户界面 重新回到TinySMS的初始界面 * * @param phonenumber * 电话号码 * @param msg * 短信内容 */ public static void sendSMS(Context context, String phonenumber, String msg) {// 发送短信的类 PendingIntent pi = PendingIntent.getBroadcast(context, 0, new Intent(), 0); //PendingIntent pi=PendingIntent.getActivity(this, 0, new Intent(this,MainActivity.class), 0); SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(phonenumber, null, msg, pi, null);// 发送信息到指定号码 } }
REFERENCES:
add contact
http://www.cnblogs.com/jxgxy/archive/2012/07/28/2613069.html
http://www.eoeandroid.com/thread-19941-2-1.html
http://daixj110.iteye.com/blog/1179278
http://bbs.189works.com/thread-53578-1-1.html
call
http://blog.163.com/ppy2790@126/blog/static/10324224120111383430531/
sen sms
---------------------------------------------------------------------------------------------------------------------------------
copyright:http://www.cnblogs.com/anee/