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);
        }
  • 相关阅读:
    iOS工作笔记(十二)
    隐藏底部导航栏tabbar
    SDWebImage的使用及图片不改变问题的解决
    NSString转化为NSDictionary
    makeObjectsPerformSelector用法
    iOS中点与像素
    iOS动画的简单介绍
    Pods安装时卡在Updating local specs repositories界面时的处理
    使用uicollectionView时需要注意的问题
    Sublime Text 3 自定义配置快捷键
  • 原文地址:https://www.cnblogs.com/xueqiang911226/p/3939374.html
Copyright © 2011-2022 走看看