在电话应用程序:Android上显示对话框

时间:2014-10-18 18:09:57

标签: android

我希望在拨打电话时在Android Native Phone应用程序顶部显示一个对话框。 我可以创建对话框,但它在电话应用程序的顶部不可见。

我试过了: 建议见:Android, how to bring a Task to the foreground?

在清单文件中设置了以下内容

        <activity
        android:name=".DialogActivity"
        android:excludeFromRecents="true"
        android:label="@string/title_activity_dialog"
        android:launchMode="singleTop"
        android:taskAffinity=""
        android:theme="@android:style/Theme.Dialog" >
    </activity>

电话状态监听器:

public void onCallStateChanged (int state, String incomingNumber)
        {
            if(TelephonyManager.CALL_STATE_RINGING == state) {
                Log.i("PHONESTATE","RINGING");
                //Incoming call handling
            }
            if(TelephonyManager.CALL_STATE_OFFHOOK == state) {

                Log.i("PHONESTATE","OFFHOOK" + context.toString());
                Intent in = new Intent(context, DialogActivity.class);
                in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                in.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                in.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
                context.startActivity(in);

            }
            if(TelephonyManager.CALL_STATE_IDLE == state) {
                //Device back to normal state (not in a call)
                Log.i("PHONESTATE","IDLE");

            }
        }

请您指导一下实现我想要的方法。 在此先感谢:)

2 个答案:

答案 0 :(得分:1)

试试这个

Intent intent=new Intent(this,DialogActivity.class);
intent.setFlag(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

答案 1 :(得分:0)

@感谢Praveen的建议! 没有显示Dialog的原因是,当我在手机监听器中获得OFF_HOOK状态时,我试图创建意图。意图是在PhoneApp之前推出的。

诀窍是在开始活动之前放置一个Thread.Sleep(2000),假设手机应用程序将在手机状态变为OFF_HOOK之后的2秒内启动;

如果有更好的方法,请告诉我。