此代码适用于具有原生android系统的普通google设备。但是在htc感应设备的列表中没有MMS应用程序,我不知道Motorola Blur等:
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("image/png");
emailIntent.putExtra(Intent.EXTRA_STREAM, uri);
context.startActivity(Intent.createChooser(emailIntent, context.getString(R.string.send_intent_name)));
此代码适用于htc意义,但不适用于Chooser,我真正需要的是:
Intent sendIntent = new Intent("android.intent.action.SEND_MSG");
sendIntent.putExtra(Intent.EXTRA_STREAM, uri);
sendIntent.setType("image/png");
context.startActivity(sendIntent);
但我不知道如何将这些代码示例组合在一起,我不知道如何以编程方式确定Htc Sense ui。是支持不同类型设备的正确方法吗?
感谢您的回答。
答案 0 :(得分:1)
感觉,特别是旧版本很痛苦。 webview控件也有一堆问题。根据消息量的不同,您可以尝试使用像amazon的简单通知服务这样的Web服务来发送短信:http://aws.typepad.com/aws/2011/11/amazon-simple-notification-service-now-supports-sms.html 它不是一个Android解决方案,但它可能会工作。
答案 1 :(得分:1)
您可以检测是否有HTC Intent的响应者,然后分支:
intent = new Intent("android.intent.action.SEND_MSG");
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType("image/png");
resolves = getActivity().getPackageManager().queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
if (resolves.size() > 0) {
// This branch is followed only for HTC
context.startActivity(intent);
} else {
// Else launch the non-HTC sense Intent
intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_STREAM, uri);
context.startActivity(Intent.createChooser(intent,
context.getString(R.string.send_intent_name)));
}
答案 2 :(得分:1)
你可以这样使用它:
Intent i = new Intent(Intent.ACTION_SEND);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra(Intent.EXTRA_EMAIL, new String[]{""});
i.setType("video/3gp");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + attachmentFilePath));
startActivity(i);