加载时自动呼叫号码

时间:2014-07-10 13:55:59

标签: android eclipse

我为自己制作了一个小应用程序,但似乎有问题。基本上我在制作应用程序时会选择它来检查我的信用。

  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       phoneCall();
    }

    private void phoneCall()
    {
     String phoneCallUri = "tel:*#100#";
     Intent phoneCallIntent = new Intent(Intent.ACTION_CALL);
     phoneCallIntent.setData(Uri.parse(phoneCallUri));
     startActivity(phoneCallIntent);
    }

我使用了一些我在互联网上找到的回收代码。当我用onclick调用方法并使用我的手机号码时,我能够使它工作。我认为问题是特殊字符,但我不确定。我的清单中有调用权限,我基本上从我的工作应用程序中获取了大部分代码并对其进行了修改。非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

试试这个。

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

并使用此权限

android.permission.CALL_PHONE

答案 1 :(得分:1)

这是'#'阻止它的角色。这是一个需要转义的特殊角色。

您可以参考此主题:https://groups.google.com/forum/#!topic/android-developers/az7OnaempKY

String encodedHash = Uri.encode("#"); 
String phoneCallUri = "tel:"+ "*"+encodedHash+"100"+ encodedHash;

Intent phoneCallIntent = new Intent(Intent.ACTION_CALL);
phoneCallIntent.setData(Uri.parse(phoneCallUri));

startActivity(phoneCallIntent);

答案 2 :(得分:0)

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

        String phoneCallUri = "*#100#";
        Intent dial = new Intent();
        dial.setAction("android.intent.action.DIAL");
        dial.setData(Uri.parse("tel:" + phoneCallUri));
        startActivity(dial);

  }

}