我的申请中有一项要求,我必须点击按钮发送彩信。当我点击按钮时,它会提示选择使用哪个应用程序来完成电子邮件或消息传递操作。我希望它默认打开消息。我搜索了很多,但没有得到任何答案。下面,我发布了我的代码:
public class MMSActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button mms = (Button)findViewById(R.id.mms);
mms.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
sendMMS();
}
});
}
public void sendMMS() {
Intent in = new Intent(Intent.ACTION_SEND);
in.putExtra("sms_body", "some text");
in.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(Environment.getExternalStorageDirectory()
.getAbsolutePath().toString()+"/diplomat/ALEXANDRA-1339242345022.jpg")));
in.setType("image/jpeg");
startActivity(in);
Log.d("MMS", "SendMMS called");
}
}
我甚至尝试将类设置为android.telephony.SmsMessage,但它没有用。
答案 0 :(得分:1)
我希望它默认打开消息
首先,目前还不清楚你认为“消息”是什么。我将假设您的意思是Android开源项目(AOSP)MMS客户端。
其次,许多设备没有这个应用程序。欢迎设备制造商使用他们希望的任何MMS客户端,这可能是也可能不是AOSP客户端。
第三,欢迎用户安装和使用他们从Play商店或其他地方获得的自己的SMS / MMS客户端。通过说用户不应该在这个问题上做出选择,你说你比用户更重要。您的用户往往不同意。
请允许您的用户使用他们想要的任何MMS客户端,以及至少一个实际存在的客户端。
答案 1 :(得分:0)
如果您要发送图片。
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity");
sendIntent.putExtra("sms_body", "some text");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/image_4.png"));
sendIntent.setType("image/png");
startActivity(sendIntent);;