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);
        }
  • 相关阅读:
    JavaScript 之 变量
    SqlServer 之 系统视图
    SQL Server 2008中的Hints(提示)的简单整理
    SqlServer日常积累(三)
    Asp.net 之页面处理积累(一)
    Android 之Toast
    Android 之开发积累
    go与json
    binder
    DBUS
  • 原文地址:https://www.cnblogs.com/xueqiang911226/p/3939374.html
Copyright © 2011-2022 走看看