操作联系人(添加联系人,打电话,发短信)

 

 

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

http://jishu-qiu.blog.sohu.com/198614769.html

http://blog.92coding.com/?p=433

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值