1.第一种可以调用系统内部的短信程序.

之前我曾经出现过一个bug就是报错:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SENDTO dat=Tel:xxx }……

这是因为我使用intent调用系统编辑短信服务参数没有设置好,后认真核对修改之后,改成如下的样子就没有问题了:

出现这个报错的原因是:

之前我调用Intent启动activity的代码是:

1 Intent intent = new Intent(Intent.ACTION_SENDTO,Uri.parse("sms:“+message);2 startActivity(intent);

这里调用这个构造方法是不行的,我们回去看API,发现:

Intent(String action, Uri uri)
          Create an intent with a given action and for a given data url.(这要求是给定的数据,也就是常量),也就是说构造方法参数不能是变量

(具体方法实体,可以去看API)

下面使用intent调用系统内部的短信编辑程序

1 Intent intent = new Intent();2 intent.setAction(Intent.ACTION_SENDTO);3 intent.setData(Uri.parse("smsto:"+num));4 intent.putExtra("sms_body", message);5 startActivity(intent);    

 

 

点击一下:发送短信,程序会主动重新跳转到下面的界面,是调用android系统内部的短信编辑程序

 

2. 就是我们不要调用android系统的短信编辑程序,而是编写属于自己短信编辑程序:(程序部分重要代码如下):

 1 sendmess_button.setOnClickListener(new View.OnClickListener() { 2              3             @Override 4             public void onClick(View v) { 5                 String str2 = "";//切记这里只能定义为"",空字符,之前我定义为null,总是无法弹出发送内容为空的提示 6                 String num = edit_num.getText().toString(); 7                 String message = edit_mess.getText().toString(); 8                 SmsManager smsManager = SmsManager.getDefault(); 9                 ArrayList texts= smsManager.divideMessage(message);//拆分短信,字数多的短信拆分成多个短信10                 11                 if (message.equals(str2) || num.equals(str2)) {12                     Toast.makeText(MainActivity.this.getApplicationContext(),13                             "你个二愣子,你还没输入短信内容或者输入手机号码", 1).show();14                 }15                 // Intent intent = new Intent();16                 // intent.setAction(Intent.ACTION_SENDTO);17                 // intent.setData(Uri.parse("smsto:"+num));18                 // intent.putExtra("sms_body", message);19                 // startActivity(intent);20 21                 for (String text : texts) {22                     smsManager.sendTextMessage(num, null, text, null, null);23                 }24                 25                 26             }27         });

 在这之后我也遇到Intent调用拨号出现相应错误:

 1 06-04 04:09:24.285: W/dalvikvm(12398): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 2 06-04 04:09:24.326: E/AndroidRuntime(12398): FATAL EXCEPTION: main 3 06-04 04:09:24.326: E/AndroidRuntime(12398): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.CALL dat=Tel:xxx } 4 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622) 5 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417) 6 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.app.Activity.startActivityForResult(Activity.java:3370) 7 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.app.Activity.startActivityForResult(Activity.java:3331) 8 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.app.Activity.startActivity(Activity.java:3566) 9 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.app.Activity.startActivity(Activity.java:3534)10 06-04 04:09:24.326: E/AndroidRuntime(12398):     at com.himi.sendmessage.MainActivity$1.onClick(MainActivity.java:47)11 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.view.View.performClick(View.java:4204)12 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.view.View$PerformClick.run(View.java:17355)13 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.os.Handler.handleCallback(Handler.java:725)14 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.os.Handler.dispatchMessage(Handler.java:92)15 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.os.Looper.loop(Looper.java:137)16 06-04 04:09:24.326: E/AndroidRuntime(12398):     at android.app.ActivityThread.main(ActivityThread.java:5041)17 06-04 04:09:24.326: E/AndroidRuntime(12398):     at java.lang.reflect.Method.invokeNative(Native Method)18 06-04 04:09:24.326: E/AndroidRuntime(12398):     at java.lang.reflect.Method.invoke(Method.java:511)19 06-04 04:09:24.326: E/AndroidRuntime(12398):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)20 06-04 04:09:24.326: E/AndroidRuntime(12398):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)21 06-04 04:09:24.326: E/AndroidRuntime(12398):     at dalvik.system.NativeStart.main(Native Method)22 06-04 04:09:26.744: I/Process(12398): Sending signal. PID: 12398 SIG: 9

这个和上面短信问题一样的,还是基础概念不扎实

转载于:https://www.cnblogs.com/hebao0514/p/4551482.html

更多相关文章

  1. android经典面试题集锦
  2. Android(安卓)开发 短信app
  3. 从setContentView说起
  4. Android(安卓)scrollview嵌套listview出现listview无法滑动冲突
  5. LayoutInflater使用
  6. onInterceptTouchEvent和onTouchEvent调用时序(转)
  7. Android(安卓)4.4.2 禁用通知栏下拉
  8. Android(安卓)7.0拍照出现android.os.FileUriExposedException异
  9. Android中获取应用程序(包)的信息(launcher获取系统应用)

随机推荐

  1. android程序目录结构及分析
  2. Android中Intent的使用示例
  3. Android布局优化之Include(一)
  4. Android平台上的JNI技术介绍
  5. android中DexClassLoader类的使用
  6. Android开发之旅:活动与任务
  7. Android(安卓)4.0 更新后 启动不了.
  8. Android(安卓)Kotlin开发之Hello World
  9. Android推送通知指南
  10. Android(安卓)的 JNI 和 NDK开发