【问题标题】:No Activity found to handle Intent { act=android.intent.action.CALL未找到处理 Intent { act=android.intent.action.CALL 的 Activity
【发布时间】:2016-04-11 13:29:36
【问题描述】:

当我运行应用程序时出现致命异常错误

android.content.ActivityNotFoundException: 找不到处理 Intent 的 Activity


public class MainActivity extends AppCompatActivity {

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //  get butten
        Button  bt= (Button) findViewById(R.id.bt);
        // set a monitor
        bt.setOnClickListener(new MyListener());
    }

    class MyListener implements View.OnClickListener{
        public void onClick(View v) {
            EditText et = (EditText) findViewById(R.id.et);
            String number = et.getText().toString();
            Intent intent = new Intent();

            intent.setAction(Intent.ACTION_CALL);
            intent.setData(Uri.parse("tel"+number));
            startActivity(intent);
        }
    }
}

【问题讨论】:

标签: android android-intent android-activity handle


【解决方案1】:

您必须使用context 和类名来指定Intent

由于您没有提供 Manifest 文件,因此避免错误的最简单方法是按如下方式更改代码

 Intent intent = new Intent(this,MainActivity.class);  

更多详情来自 android 文档

android.content.Intent public Intent(android.content.Context packageContext, 
                                     java.lang.Class<?> cls)  

为特定组件创建意图。所有其他字段(操作、数据、类型、类)都是 null,尽管稍后可以通过显式调用对其进行修改。这个 提供了一种方便的方法来创建意图 执行一个硬编码的类名,而不是依赖系统来执行 为您找到合适的课程;有关更多信息,请参见 setComponent 有关此影响的信息。

参数:packageContext - 应用程序包的上下文 实现这个类。 cls - 要成为的组件类 用于意图。

【讨论】:

    【解决方案2】:

    很简单,您的设备没有处理电话的应用。它可能是平板电脑。编码时,您必须使用 try...catch 对此类错误进行编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-20
      • 2021-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多