2

我在接听电话时制作了广播接收器我想添加一个按钮(除了接听和拒绝),它会执行某个功能,所以我看到了两个解决方案,一个是我做的(如果可能半屏透明活动将有按钮但不要阻止回答和拒绝按钮,或者我看到的第二个解决方案是制作类似 BIG CALLER PICTURE 应用程序的游戏。谷歌任何人都可以向我推荐一些好的例子。THX

  public class CallReceiveD extends BroadcastReceiver {
private ITelephony telephonyService;
String phoneNumber;
@Override
public void onReceive(Context context, Intent intent) {
    // i will call the intent here

            }}  
4

4 回答 4

3

您绝对可以将活动创建为占据屏幕一部分的对话框。虽然我不确定这会完成你想要的,因为通过打开新活动,电话活动应该会被 onPause 调用,并且可能会打乱你的流程。也许尝试打开一个活动并在清单中的活动中定义

<activity android:theme="@android:style/Theme.Dialog" />

看看这是否适用于你想做的事情。然后你可以围绕活动的位置、大小等调整暗淡。

于 2012-10-17T08:40:39.483 回答
1

我不确定它是否会有所帮助,但有一个名为 StandOut 的“浮动”应用程序框架。也许它可以帮助你...

http://forum.xda-developers.com/showthread.php?t=1688531

它提供了创建浮动在屏幕上而不是占据整个应用程序窗口的方法。您仍然可以与下面的应用程序进行交互。该线程提供了很多示例,也许其中有一些适合您的东西。

于 2012-10-17T09:38:28.137 回答
0

您当然可以创建部分屏幕活动。如果按照 MikeIsrael 的建议以对话主题开始,则新活动下方没有任何内容。像往常一样简单地编写一个 Activity,但是给它你选择的 layout_width 和 layout_height - 说 300x400dp。

然后可以使用 onAttachWindow 来设置大小和位置。此示例将窗口设置为显示的右上角,但在 actionBAr 下方

public void onAttachedToWindow() {
    super.onAttachedToWindow();

    View view = getWindow().getDecorView();
    WindowManager.LayoutParams lp = (WindowManager.LayoutParams) view.getLayoutParams();


    lp.gravity = Gravity.LEFT | Gravity.TOP;
    lp.width = (int)(400 * screenInfo.density);
    lp.x = screenInfo.widthPixels - lp.width;
    lp.y = actionBarHeight;
    getWindowManager().updateViewLayout(view, lp); 

}

请注意,尽管重力表示左上角,但 X,Y 决定了我放置窗口的位置

于 2014-01-30T19:47:08.367 回答
0

我可能是错的,但据我所知,您将无法启动半屏意图(活动)。你可以做一个透明的活动,但它会阻止下面的系统按钮。我会说你必须尝试覆盖系统调用接收器工具来实现这一点。

于 2012-10-17T08:35:56.737 回答