【问题标题】:How to dial a number如何拨打电话
【发布时间】:2016-06-20 01:15:59
【问题描述】:

我正在尝试拨打 *123*0xxxxxxxxxx# 之类的号码。并且 0xxxxxxxxxx 部分将通过编辑文本从用户输入中获得。我的代码在这里

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);

      }

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

【问题讨论】:

    标签: android android-intent phone-number phone-call


    【解决方案1】:

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

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

    【讨论】:

    • 你测试的是哪个安卓版本?
    • 你可能需要记录用户输入以确保它是正确的。你也可能需要修剪它(删除未使用的空格)
    • 您是否尝试将 ACTION_CALL 更改为 ACTION_DIAL ?也许这会给你任何提示
    【解决方案2】:

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

            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\#
    • 但我也必须用字符拨号。
    • 我已经更新了我的答案。我现在试过了。它适用于我的设备。试试看它是否有用。
    猜你喜欢
    • 2014-12-20
    • 2017-12-21
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多