zoukankan      html  css  js  c++  java
  • android.content.ActivityNotFoundException: No Activity found to handle Intent

    代码如下:

        public void sendMessage(String number) {
            if (TextUtils.isEmpty(number)) {
                return;
            }
            Intent intent = new Intent(Intent.ACTION_SENDTO,
                    Uri.fromParts(Constants.SCHEME_SMS, number, null));
            context.startActivity(intent);
        }

    异常信息提示如下:

    android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SENDTO dat=sms:xxxxxxxxxxx } 

        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632)

        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)

        at android.app.Activity.startActivityForResult(Activity.java:3424)

    调查如下:

    1,如果手机中没有能发送短信的app就会报出这样的错

    2,手机中的能发送短信的应用被关闭了(设置-->应用-->app-->关闭);

    解决方法:为了避免有的手机没有打开相应文件的app,在startActivity那里做一个try catch

        public void sendMessage(String number) {
            if (TextUtils.isEmpty(number)) {
                return;
            }
            Intent intent = new Intent(Intent.ACTION_SENDTO,
                    Uri.fromParts(Constants.SCHEME_SMS, number, null));
            try {
                context.startActivity(intent);
            } catch(ActivityNotFoundException exception) {
                Toast.makeText(this, "no activity", Toast.LENGTH_SHORT).show();
            }
        }

    or 调用系统方法判断是否有对应的app

         public void sendMessage(String number) {
            if (TextUtils.isEmpty(number)) {
                return;
            }
            Intent intent = new Intent(Intent.ACTION_SENDTO,
                    Uri.fromParts(Constants.SCHEME_SMS, number, null));
            
            PackageManager packageManager = getPackageManager();
            List<ResolveInfo>applist = packageManager.queryIntentActivities(intent, 0);
            if (applist == null || applist.isEmpty()) {
                Toast.makeText(this, "no activity", Toast.LENGTH_SHORT).show();
                return;
            }
            context.startActivity(intent);
        }
  • 相关阅读:
    博客搬到CSDN了,以后就老实的呆在这儿吧~~
    Android对px和dip进行尺寸转换的方法
    获取Java的32位MD5实现
    GDI+ Hello World
    WTL对话框添加背景图片
    WTL对话框添加背景图片
    WTL设置对话框背影色
    WTL设置对话框背影色
    使用CStatic显示图片(bmp、ico、png)
    WTL Picture Control显示图片
  • 原文地址:https://www.cnblogs.com/xueqiang911226/p/3939374.html
Copyright © 2011-2022 走看看