首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带着意图启动sms应用程序

带着意图启动sms应用程序
EN

Stack Overflow用户
提问于 2010-03-03 22:55:51
回答 16查看 171.8K关注 0票数 152

我有一个关于意图的问题。我试着启动短信应用..。

代码语言:javascript
复制
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setType("vnd.android-dir/mms-sms");
int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP |
    Intent.FLAG_ACTIVITY_CLEAR_TOP;
intent.setFlags(flags);
intent.setData(Uri.parse("content://sms/inbox"));
context.startActivity(intent);

所以,你可以看到我在我的意图中放了太多的东西,但那是因为我不知道我能做什么…感谢‘s

EN

回答 16

Stack Overflow用户

发布于 2010-03-03 23:46:46

要开始启动sms活动,您只需执行以下操作:

代码语言:javascript
复制
Intent sendIntent = new Intent(Intent.ACTION_VIEW);         
sendIntent.setData(Uri.parse("sms:"));

您可以添加额外的内容来填充您自己的消息,就像这样

代码语言:javascript
复制
sendIntent.putExtra("sms_body", x); 

然后只需带着意图使用startActivity。

代码语言:javascript
复制
startActivity(sendIntent);
票数 245
EN

Stack Overflow用户

发布于 2012-03-12 17:54:22

代码语言:javascript
复制
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address", "12125551212");
smsIntent.putExtra("sms_body","Body of Message");
startActivity(smsIntent);
票数 142
EN

Stack Overflow用户

发布于 2014-07-17 21:13:14

如果android版本是Kitkat或以上,用户可以更改默认的短信应用程序。此方法将获取默认的短信应用程序并启动默认的短信应用程序。

代码语言:javascript
复制
private void sendSMS() {    
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) // At least KitKat
      {
         String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(this); // Need to change the build to API 19

         Intent sendIntent = new Intent(Intent.ACTION_SEND);
         sendIntent.setType("text/plain");
         sendIntent.putExtra(Intent.EXTRA_TEXT, "text");

         if (defaultSmsPackageName != null)// Can be null in case that there is no default, then the user would be able to choose
         // any app that support this intent.
         {
            sendIntent.setPackage(defaultSmsPackageName);
         }
         startActivity(sendIntent);

      }
      else // For early versions, do what worked for you before.
      {
         Intent smsIntent = new Intent(android.content.Intent.ACTION_VIEW);
         smsIntent.setType("vnd.android-dir/mms-sms");
         smsIntent.putExtra("address","phoneNumber");         
         smsIntent.putExtra("sms_body","message");
         startActivity(smsIntent);
      }
   }
票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2372248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档