ここでの他のすべての質問は、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が応答に変更されたときにダイヤルされた番号が渡されます。
私はこれに慣れていないことを認めますので、いくつかの明白な間違いがあります、私は知っています、私はそれらを見るにはあまりにも新しいです。そこには100万人の顧客ダイヤラーがいるので、これはAndroidでできる最も簡単なことの1つだと思いました。私は特別なことをしようとはしていません。サービスを使用するにはアプリを使用する必要があります。つまり、BroadcastReceiverが発信通話を傍受して、サービスを使用するかどうかを確認しようとして、バックグラウンドでぶらぶらしていません。シンプルなダイヤラアプリ。どこが間違っているのですか?このコードの一部は、本やオンラインチュートリアルから直接コピーされ、機能させようとしていますが、直接コピーして貼り付けると機能しませんか?