Android系统。通过环聊发送消息时设置电话号码

时间:2015-05-14 15:22:46

标签: android android-intent sms hangout

我想通过环聊发送邮件时设置电话号码。

当我使用短信时,可以按照以下方式完成。

Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setData(Uri.parse("sms:"));
sendIntent.putExtra("sms_body", message);
sendIntent.putExtra("adress", phoneNumber);
context.startActivity(sendIntent);

但我不知道在环聊中如何通过电话号码设置电话号码或目标。 这是我目前使用环聊的代码。

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) //At least KitKat
    {
        String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(context);

        Intent sendIntent = new Intent(Intent.ACTION_SEND);
        sendIntent.setType("text/plain");
        sendIntent.putExtra(Intent.EXTRA_TEXT, message);

        if (defaultSmsPackageName != null)
        {
            sendIntent.setPackage(defaultSmsPackageName);
        }
        context.startActivity(sendIntent);
    }

EDITED ..!

我从here找到了解决方案。 请参阅@Roberto B。的解决方案。

1 个答案:

答案 0 :(得分:1)

我最近使用了以下代码,它似乎符合您的要求:

public static void sendSMS(Activity activity, String message, String phoneNumber){

        Intent smsIntent;

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
            smsIntent = new Intent(Intent.ACTION_SENDTO);
            //Ensures only SMS apps respond
            smsIntent.setData(Uri.parse("smsto:" + phoneNumber));

            //No resolvable activity
            if (smsIntent.resolveActivity(activity.getPackageManager()) == null) {
                return;
            }

        }else{
            //Old way of accessing sms activity
            smsIntent = new Intent(Intent.ACTION_VIEW);
            smsIntent.setType("vnd.android-dir/mms-sms");
            smsIntent.putExtra("address", phoneNumber);
            smsIntent.putExtra("exit_on_sent", true);
        }
        smsIntent.putExtra("sms_body", message);
        activity.startActivity(smsIntent);
    }