2 qqdazhou qqdazhou 于 2013.05.19 12:35 提问

关于安卓应用开发的问题......入门问题......

看教程写了个输入号码拨号的小应用 代码如下

package com.example.testcall;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
    private EditText numET;
    private Button but;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        numET = (EditText) this.findViewById(R.id.EditText1);
        but = (Button) findViewById(R.id.Button01); 
    }


    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void call(View v) {
        String num = numET.getText().toString();
        Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(num));
        this.startActivity(intent);
    }
}

运行报错如下

05-19 12:12:43.310: E/AndroidRuntime(781): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.CALL dat= }

这是说activity没注册吗 就是默认的main activity 明明已经注册了啊 求指教谢谢~~

2个回答

franzhong
franzhong   2013.05.19 13:04
已采纳

把电话的prefix设为"tel:"

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+num));
this.startActivity(intent);

最后别忘添加权限了

<uses-permission  android:name="android.permission.CALL_PHONE" />
wengjy505
wengjy505 我也死在了tel。。粗心诶
大约 3 年之前 回复
baidu_24030643
baidu_24030643 看了你的答案我也是恍然大悟,我是写了tel,但是后面没加冒号,折磨了一下午啊
3 年多之前 回复
qqdazhou
qqdazhou 谢谢你.....原来该死的在这里 Uri.parse("tel:"+num))......恨啊恨啊 非常感谢
接近 5 年之前 回复
justloveyou_
justloveyou_   2015.04.13 10:44

你用的哪个版本啊 我用的Android4.4 总是调用不了系统拨号 谢谢 求回复

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!