当我的应用程序在后台运行时,如何在其他应用程序之上创建弹出窗口图像?

时间:2011-11-24 12:28:55

标签: android advertising

我有一个Android应用程序,它在某个阶段在背景中运行,一旦某个事件发生,它就会接管,并出现在前台。

现在我想要更复杂的东西。当我的活动在后台时,无论正在运行什么应用程序,都会在屏幕底部显示小图像(如弹出广告)。 这可能吗? (这不是编写应用程序的情况,而是让广告引擎将广告插入到我的应用程序中。我想要相反,没有任何集成)

2 个答案:

答案 0 :(得分:1)

就像Jan所说的那样,您应该非常小心,因为如果处理不当,它很容易激怒用户。这是显示视图叠加层的一种方法。您需要手机的所有者明确授予您覆盖权限。然后,您可以显示服务类中的视图。您需要记住正确处理权限。您需要在清单中指定以下权限-

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

由于这是危险的权限,因此用户必须在设置中手动为您授予权限。然后,您可以在服务类中使用windowManager来处理视图对齐,大小和详细信息。例如-

windowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager
        params = WindowManager.LayoutParams(
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_PHONE,
                WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
                PixelFormat.TRANSLUCENT)

        params.gravity = Gravity.BOTTOM
        if (view.windowToken != null) {
          try {
            windowManager!!.addView(view, params)
        } catch (e: Exception) {
            Log.d("The exception is", e.toString())
        }

        } 

答案 1 :(得分:0)

你可以做到这一点,但它非常违反Android本身的设计原则,人们可能会立即删除你的应用。