Android 如何拨打电话号码

Android 如何拨打电话号码,android,android-intent,phone-number,phone-call,Android,Android Intent,Phone Number,Phone Call,我想拨一个像*123*0xxxxxxxxx#这样的号码。0xxxxxxxxx部分将通过编辑文本从用户输入中获取 EditText et1; String ET1; String pnd,encode_zero; Button call; Intent callIntent = new Intent(Intent.ACTION_CALL); @Override protected void onCreate(Bundle savedInstanceState) { super.onCr

我想拨一个像*123*0xxxxxxxxx#这样的号码。0xxxxxxxxx部分将通过编辑文本从用户输入中获取

EditText et1;
String ET1;
String pnd,encode_zero;
Button call;

Intent callIntent = new Intent(Intent.ACTION_CALL);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.call);

    et1 = (EditText) findViewById(R.id.et1);
    call = (Button) findViewById(R.id.btn_call);

    ET1 = et1.getText().toString();
call.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
                  pnd = Uri.encode("#");
          encode_zero = Uri.encode("0");
                  callIntent.setData(Uri.parse("tel:*123*0" + ET1 + pnd));
                  startActivity(callIntent);

      }
  });
但当我运行应用程序时,它以告诉无效号码结束。这意味着我认为不考虑零(0)。我也试过这个

public void onClick(View v) {
                  pnd = Uri.encode("#");
          encode_zero = Uri.encode("0");
                  callIntent.setData(Uri.parse("tel:*123*" + encode_zero + ET1 + pnd));
                  startActivity(callIntent);

      }
但结果都是一样的。
现在我能做什么

确保将此权限添加到清单中

<uses-permission android:name="android.permission.CALL_PHONE" />

确保将此权限添加到清单中

<uses-permission android:name="android.permission.CALL_PHONE" />

此代码打开带有号码的电话拨号器-

        String number = "*123*0123456#";
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:" + Uri.encode(number)));
        if (ActivityCompat.checkSelfPermission(getBaseContext(), Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {

            return;
        }
        startActivity(callIntent);

此代码打开带有号码的电话拨号器-

        String number = "*123*0123456#";
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:" + Uri.encode(number)));
        if (ActivityCompat.checkSelfPermission(getBaseContext(), Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {

            return;
        }
        startActivity(callIntent);

兄弟,我得打一个像*123*0123456这样的号码,然后,试着为那些明星逃避角色。像这样-\*123\*0123456\\但是我也必须用这个字符拨号。我已经更新了我的答案。我现在试过了。它在我的设备上工作。试着告诉我它是否有用。兄弟,我得打一个像*123*0123456这样的号码。然后,试着为这些星星转义字符。像这样-\*123\*0123456\\但是我也必须用这个字符拨号。我已经更新了我的答案。我现在试过了。它在我的设备上工作。试试看它是否有用。你测试的是哪个android版本?你可能需要记录用户输入以确保其正确。。此外,您可能需要对其进行修剪(以删除未使用的空格)。您是否尝试将ACTION_CALL更改为ACTION_DIAL?也许这会让你知道你在测试哪个android版本?你可能需要记录用户输入以确保它是正确的。。此外,您可能需要对其进行修剪(以删除未使用的空格)。您是否尝试将ACTION_CALL更改为ACTION_DIAL?也许这会给你任何提示