Android:意图崩溃应用程序

时间:2015-09-22 07:50:14

标签: android android-intent

我是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);

5 个答案:

答案 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");