2

私たちは Android アプリケーションを使用していくつかの評価を行っています。評価者が現場に到着すると、電話でオフィスにログインする必要があります。電話がかかってきたら、電話のディスプレイに残しておきたい参照番号があります.

完璧なのは、ダイヤラー画面の上部に番号を表示するダイアログです。

私はこれをやろうとしましたが、ダイアログを追い越し、呼び出し画面を表示するだけです。ダイヤラーをバックグラウンドにプッシュして、ユーザーにダイアログを表示し続ける方法はありますか?

私がこれまでに持っているものは次のとおりです。

public void makecall(View view){ 
    try {
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:NUMBER"));
        startActivity(callIntent);
        Toast.makeText(getApplicationContext(), "TEST",Toast.LENGTH_LONG).show(); 
        AlertDialog.Builder adb = new AlertDialog.Builder(this); 
        adb.setTitle("Alert"); 
        adb.setMessage("Client Reference Blah Blah");
        adb.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
            public void onClick(DialogInterface dialog, int id) { 

            } 
        });
        adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
            public void onClick(DialogInterface dialog, int id) { 
                dialog.cancel(); 
            }
        });
        adb.show();         
    } catch (ActivityNotFoundException activityException) {
        Throwable e = null;
        Log.e("helloandroid dialing example", "Callfailed", e); 
    }
}
4

1 に答える 1

4

通話中の画面の上に何かを表示するには、アクティビティを使用する必要があると思います。投稿したこのアクティビティからダイアログを表示しているため、ダイアログは機能しませんが、呼び出しインテントを開始すると、このアクティビティはスタックの一番上に表示されなくなります。

ここで答えを参照してください: Android - ネイティブ画面にダイアログを表示する方法は?

ただし、(新しい)アクティビティをダイアログのようにスタイル設定する方法については、後と同じ視覚効果が得られます。

その質問に示されているパラメーターを使用して新しいアクティビティを作成したら、callIntent を開始した後に startActivity で開始できます

public void makecall(View view){ 
    try {
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:NUMBER"));
        startActivity(callIntent);
        Toast.makeText(this, "TEST",Toast.LENGTH_LONG).show(); 

        Runnable showDialogRun = new Runnable() {
            public void run(){
                Intent showDialogIntent = new Intent(this, DialogActivity.class);
                startActivity(showDialogIntent);
            }
        };
        Handler h = new Handler();
        h.postDelayed(showDialogRun, 2000);
    } catch (ActivityNotFoundException activityException) {
        Throwable e = null;
        Log.e("helloandroid dialing example", "Callfailed", e); 
    }
}

ダイアログの startActivity を 1 秒か 2 秒遅らせると、実際に電話画面の上に飛び散る可能性が高くなるようです。

于 2013-04-08T13:34:07.250 に答える