试图让Android应用程序调用一个数字

时间:2014-02-10 14:38:12

标签: android eclipse

我想让我正在创建的应用打开拨号器并使用“seq”变量中的字符序列发送呼叫。

我尝试时遇到错误。这是我的代码。

public void sendCall(View v){
    EditText phoneNumberText=(EditText)findViewById(R.id.phoneNumberText);
    EditText topUpValueText=(EditText)findViewById(R.id.topUpValueText);
    EditText passCodeText=(EditText)findViewById(R.id.passCodeText);
    Integer phoneNumber=Integer.parseInt(phoneNumberText.getText().toString()),topUpValue=Integer.parseInt(topUpValueText.getText().toString()),passCode=Integer.parseInt(passCodeText.getText().toString());
    String seq="*195*4000*" + passCode.toString() + "*868" + phoneNumber.toString() + "*" + topUpValue.toString() + "#";
    Uri number = Uri.parse(seq);
    Intent callIntent = new Intent(Intent.ACTION_DIAL, number);

3 个答案:

答案 0 :(得分:3)

您可以使用以下格式拨打电话:“tel:123456789”

如果您要拨打电话(ACTION_CALL而非ACTION_DIAL),则必须获得此权限:

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

在您的清单文件中。

答案 1 :(得分:2)

使用 Intent.ACTION_DIAL :拨打数据指定的号码。这显示了一个正在拨打号码的用户界面,允许用户明确发起呼叫。

  public static void callContact(Context context, String contactNumber) {
       try {
     String uri = "tel:" + contactNumber;
     Intent DialIntent = new Intent(Intent.ACTION_DIAL,Uri.parse(uri));
            DialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(DialIntent);
     } catch (Exception e) {
            Log.e("Exception", e.getMessage());
        }
    }

使用 Intent.ACTION_CALL :活动操作:对数据指定的某人执行调用。

public static void callContact(Context context, String contactNumber) {
    try {
        String uri = "tel:" + contactNumber;
        Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(uri));
        context.startActivity(intent);
    } catch (Exception e) {
        Log.e("Exception", e.getMessage());
    }
}

将此权限添加到AndroidManifest.xml

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

答案 2 :(得分:1)

所以我有以下实用程序方法here

public static void callContact(Context context, String contactNo) {
    try {
        String uri = "tel:" + contactNo;
        Intent intent = new Intent(Intent.ACTION_CALL);
        intent.setData(Uri.parse(uri));
        context.startActivity(intent);
    } catch (Exception e) {
        // Report no exception
    }
}

不要忘记在清单中添加此权限 <uses-permission android:name="android.permission.CALL_PHONE" />