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);
    }
时间: 2024-10-06 14:25:17

android.content.ActivityNotFoundException: No Activity found to handle Intent的相关文章

Android开发之bug-No Activity found to handle Intent

android.content.ActivityNotFoundException: No Activity found to handle Intent 做Android开发中,使用隐式intent,Manifest中设置了action和category, 如下: <activity android:name="exerciseintent.ExIntent2_1"> <intent-filter > <action android:name="

隐式Intent找不到Activity:android.content.ActivityNotFoundException

Here is what i encountered: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=me.waye.intentdemo.intent.action.WAYE_ACTION cat=[me.waye.intentdemo.intent.category.WAYE_CATEGORY] } 在学习隐式启动Activity的时候遇到这个错误,用的书是李刚的疯狂An

【Android 疑难杂症1】android.content.ActivityNotFoundException: Unable to find explicit activity class

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.cnotes/com.example.cnotes.Notes_History}; have you declared this activity in your AndroidManifest.xml? 在activity中访问其它xml文件的时候总是提示Unable to find,这种情况是没有在配置文

android.content.ActivityNotFoundException: Unable to find explicit activity class {...}; have you declared this activity in your AndroidManifest.xml?

解决方法: 在文件 AndroidManifest.xml里添加 <activity android:name="com.example.contentprovider_e.ReCallLog" > </activity> 结果为: PS:我起初添加的Activity是CallLog.java而不是ReCallLog.java,所以我在AndroidManifest.xml里添加添加了<Activity></Activity>也同样报错,

android.content.ActivityNotFoundException 出现原因分析

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.settings/com.android.settings.deviceinfo.SoftwareUpdates}; have you declared this activity in your AndroidManifest.xml? 目前在开发android 5.0 L .想在settings 里面增加

Android 使用系统的Activity播放音频文件 intent

Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File("/sdcard/record.wav")), "audio"); startActivity(intent); 这里可以播放wav.amr.MP3等

Android关于No Activity found to handle Intent的问题

Android有两种Intent, 显式和隐式. 显式的Intent,即在构造Intent对象时就指定接收者: 隐式的Intent,即Intent的发送者在构造Intent对象时, 并不知道也不关心接收者是谁,有利于降低发送者和接收者之间的耦合. 对于显式Intent,Android不需要去做解析,因为目标组件已经很明确, 隐式Intent通过需要Android解析,将Intent映射给可以处理此Intent的Activity.IntentReceiver或Service. Intent解析机制

第四章 Android开发三大基石—Activity、Service和Handler(3)

4.1.5Activity交互-Activity跳转 一般的,我们的应用程序都不会简单到只有一个界面,而是会有很多个界面,这个时候我们就会创建多个Activity,然后根据业务逻辑在多个Activity之间进行跳转. 我们可以用切换Layout的方式进行手机页面间的转换.但是如果要转换的页面并不单单只是背景.颜色或文字内容的不同,而是需要对整个Activity进行置换,并将主控权交给新的Activity,那就不是仅靠改变Layout就能完成了,我们需要在这些Activity中进行跳转及数据传递.

Android百日程序: Activity的生命期

到了Android 4 的activity的生命期内的函数有7个,变得十分复杂,完善.故此要掌握好Activity的各个函数,知道应该在那个函数写什么逻辑代码. 本篇博客写个小程序测试一下activity的声明周期如何运作. 首先总结一下: 1 onCreate():activyt第一次创建的时候调用,还可能在改activity在onStop或者onPauce状态下被系统自动释放,那么当用户需要继续回到改activity的时候,也会调用这个onCreate()函数 2 onStart():当改a