这里的所有其他问题都是关于 ACTION_CALL 或 ACTION_DIAL 或这些主题的。我明白了。我需要一个意图。但是你如何实现你的自定义拨号器呢?我已经搜索和搜索,但找不到有关此主题的任何内容。我已经设计好了一切,准备好了,但没有关于如何将它们组合在一起。
我认为这就像向 layout/activity_main.java 添加一些元素和样式一样简单,但事实并非如此。到目前为止,简单的测试刚刚使应用程序在加载时崩溃。喜欢:
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/title_two"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="phone"
android:maxLength="11" >
<requestFocus />
</EditText>
<Button
android:id="@+id/one"
android:text="1" />
<Button
android:id="@+id/two"
android:text="2" />
<Button
android:id="@+id/three"
android:text="3" />
<Button
android:id="@+id/four"
android:text="4" />
<Button
android:id="@+id/five"
android:text="5" />
<Button
android:id="@+id/six"
android:text="6" />
<Button
android:id="@+id/seven"
android:text="7" />
<Button
android:id="@+id/eight"
android:text="8" />
<Button
android:id="@+id/nine"
android:text="9" />
<Button
android:id="@+id/star"
android:text="*" />
<Button
android:id="@+id/zero"
android:text="0" />
<Button
android:id="@+id/pound"
android:text="#" />
<Button
android:id="@+id/callButton"
android:text="Call" />
<Button
android:id="@+id/contacts"
android:text="Con" />
<Button
android:id="@+id/del"
android:text="Del" />
我确信这只是我遇到的一些简单的问题,但我什至无法添加任何按钮而不会使所有内容崩溃。然后在 src/MainActivity.java 中:
public class MainActivity extends Activity {
Button dialBtn;
EditText numTxt;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dialBtn = (Button) findViewById(R.id.button1);
numTxt = (EditText) findViewById(R.id.editText1);
dialBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
if (numTxt != null && (numTxt.getText().length()==10 ||numTxt.getText().length()==11)) {
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel: 8880000000" + numTxt.getText())));
}else if(numTxt != null && numTxt.getText().length()==0){
Toast.makeText(getApplicationContext(), "You must enter a number to call", Toast.LENGTH_SHORT).show();
}else if(numTxt != null && numTxt.getText().length()<10){
Toast.makeText(getApplicationContext(), "Please check your number and try again", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
Log.e("DialerActivity", "error: " + e.getMessage(), e);
}
}
});
}
}
这里唯一的目标是向用户展示一个拨号器。他们输入他们的号码,他们可以像普通拨号器一样在屏幕上看到它,然后它为服务调用硬编码的访问号码,然后在 eventListener 变为应答时传递他们拨打的号码。
我承认我是新手,所以有几个明显的错误,我知道,我太新了,看不到它们。我认为这将是你可以用 Android 做的最简单的事情之一,因为那里有一百万个客户拨号器。我并不想做任何花哨的事情,您必须使用应用程序才能使用该服务,即它不会在后台徘徊,广播接收器试图拦截您的拨出电话并查看您是否要使用该服务。只是一个简单的拨号器应用程序。我哪里错了?其中一些代码是直接从书籍、在线教程中复制的,只是试图让它工作,但直接复制和粘贴我无法工作?