我尝试使用editText的内容作为短信内容从我的应用发送消息。到目前为止我试过这种方式:
Uri uri = Uri.parse("smsto:0800000123");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
String content = edit.getText().toString();
it.putExtra("sms_body", content);
startActivity(it);
但是当活动开始时,消息中没有内容..是不是可以做类似的事情?
答案 0 :(得分:0)
尝试发送此类消息
String phoneNo = "080000123";
String sms = textsms.getText().toString();
try
{
android.telephony.SmsManager smsmanager = android.telephony.SmsManager.getDefault();
smsmanager.sendTextMessage(phoneNo, null, sms, null, null);
Toast.makeText(getApplicationContext(), "SMS Sent!",Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(),"SMS faild, please try again later!",Toast.LENGTH_LONG).show();
e.printStackTrace();
}
答案 1 :(得分:0)
我尝试使用你的相同代码,但在方法调用中。这是因为如果您的设备上安装了多个消息传递应用程序,则必须手动选择要向其发送消息的应用程序。 在我的情况下,我有whatsapp,消息等。所以你的代码在onCreate()中,它只会失败,因为没有用户选择的选项......但是当我在方法体内有这个代码并且我触发使用按钮或任何其他类似的按钮,它工作正常(唯一的事情是你必须选择应用程序 - 您可以将任何应用程序作为默认值,以便下次您不必手动执行此操作)。< / p>
我的MainActivity.java
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void send(View v)
{
Uri uri = Uri.parse("smsto:9999999999");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
EditText edit = (EditText) findViewById(R.id.editText1);
String content = edit.getText().toString();
it.putExtra("sms_body", content);
startActivity(it);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
我的activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:onClick="send" />
</LinearLayout>