在Android中调用intent

use*_*729 7 android android-intent android-implicit-intent

call按钮怎么做?我把我的号码作为一个字符串EditText.这是我的示例代码:

String phone = editPhone.getText().toString();
btnPhone.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                call();
            }
        });
public void call() {
    try {
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse(phone));
        startActivity(callIntent);
    } catch (ActivityNotFoundException activityException) {
         Log.e("myphone dialer", "Call failed", e);
    }
}
Run Code Online (Sandbox Code Playgroud)

我添加了所有permissions清单文件.

但我得到了 NullPointerexception

MKJ*_*ekh 27

这种简单的方法应该适合您.

防爆.

public class CallActivity extends Activity{
   String phone = "";

   onCreate()
   {
        btnPhone.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View arg0) { 
                phone = editPhone.getText().toString(); 
                call(); 
            } 
        });    
   }

   public void call() {   
            Intent callIntent = new Intent(Intent.ACTION_CALL);          
            callIntent.setData(Uri.parse("tel:"+phone));          
            startActivity(callIntent);  
   }
}
Run Code Online (Sandbox Code Playgroud)

您可能正在使用String变量phone超出范围.


Sha*_*dne 10

我想你错过了URI中的"tel:"部分.

更换以下..

Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse(phone));
        startActivity(callIntent);
Run Code Online (Sandbox Code Playgroud)

Intent callIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phone));
       startActivity(callIntent);
Run Code Online (Sandbox Code Playgroud)

要么

Intent callIntent = new Intent(Intent.ACTION_CALL);
            callIntent.setData(Uri.parse("tel:"+phone));
            startActivity(callIntent);
Run Code Online (Sandbox Code Playgroud)


Dha*_*mar 5

看下面的代码可能对你有帮助.

打电话

EditText num = (EditText)findViewById(R.id.number_edit);
String uri = "tel:" + num.trim();
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

用于打开拨号器

Intent dial = new Intent();
dial.setAction("android.intent.action.DIAL");
dial.setData(Uri.parse("tel:"));
startActivity(dial);
Run Code Online (Sandbox Code Playgroud)