在android中的拨号器上显示图片

时间:2012-07-29 05:58:56

标签: android image phone-state-listener

我希望我的应用在收到来电时显示图片。

到目前为止我所做的是catch phone state

我的问题是我现在如何将图像放在拨号器的前景上?

这是我的代码:

public class reviever extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
    Log.d("TAG", "phone is ringing");

    new Thread() {
        public void run() {
            try {
                sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }.start();

    Intent toPop = new Intent(context, PicPop.class);
    toPop.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(toPop);
}}

清单:

<activity
        android:name=".PicPop"
        android:theme="@android:style/Theme.Translucent">

    </activity>

我现在的问题是,所有看起来都很好,我在股票拨号器上面有一张小图片,背景是半透明的,但我无法接听电话。如何更改它,以便图片将保持在拨号器的顶部,但与拨号器进行交互,以便接听电话?

3 个答案:

答案 0 :(得分:2)

我发现了一种方法。你只需要让活动的背景透明化 `android:theme =“@ android:style / Theme.Translucent.NoTitleBar”并声明活动不可触摸并在锁定时显示:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

非常感谢你。

答案 1 :(得分:1)

对不起,你不能。出于安全原因,您可以自定义许多内容,包括拨号程序,但不包括传入/传出/呼叫期间屏幕。

http://kschang.hubpages.com/hub/Full-Android-Customization-Guide-How-to-Change-Almost-Anything-In-Your-Android-Device

答案 2 :(得分:1)

是您可以在其中启动带有Picture / ImageView的活动(来自电话状态接收器),但请确保您的自定义屏幕上有接听/拒绝按钮,否则它将不允许用户选择/拒绝接听电话。

P.S: - 这个东西的行为在不同的设备上是不同的,即使在同一个设备上也不能有时覆盖Incall屏幕