我是Android开发的新手 任何人都可以告诉我这个代码会在什么条件下崩溃我的应用程序?
请给我参考。
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType(HTTP.PLAIN_TEXT_TYPE); // "text/plain" MIME type
startActivity(sendIntent);
答案 0 :(得分:2)
使用字符串
创建短信Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");
// Verify that the intent will resolve to an activity
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}
对于二进制数据
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
shareIntent.setType("image/jpeg");
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));
请注意以下事项:
您可以使用MIME类型“ / ”,但这只会匹配能够处理通用数据流的活动。
答案 1 :(得分:2)
请看这个
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plan");
intent.putExtra(Intent.EXTRA_EMAIL, "emailaddress@emailaddress.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "I'm email body.");
startActivity(Intent.createChooser(intent, "Send Email"));
答案 2 :(得分:1)
试试这个,
因为你的行,
sendIntent.setAction(Intent.ACTION_SEND);
你可以在manifest.xml文件中取得这样的权限,
<uses-permission android:name="android.permission.SEND_SMS" />
你也可以设置text / plain
sendIntent.setType("text/plain");
答案 3 :(得分:1)
隐式意图指定可以调用设备上能够执行操作的任何应用的操作。当您的应用无法执行操作时,使用隐式意图非常有用,但其他应用可能也可以。如果注册了多个可以处理此请求的应用程序,系统将提示用户选择要使用的应用程序。
但是,可能没有可以处理您意图的应用程序。在这种情况下,当您调用startActivity()时,您的应用程序将崩溃。为避免这种情况,在调用startActivity()之前,首先应验证系统中是否至少有一个可以处理意图的应用程序。为此,请在intent对象上使用resolveActivity():
// Verify that there are applications registered to handle this intent
// (resolveActivity returns null if none are registered)
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}
答案 4 :(得分:0)
在清单中使用权限
uses-permission android:name="android.permission.SEND_SMS"
并设置如下所示的类型
sendIntent.setType("vnd.android-dir/mms-sms");