我有一个Android应用程序,它在某个阶段在背景中运行,一旦某个事件发生,它就会接管,并出现在前台。
现在我想要更复杂的东西。当我的活动在后台时,无论正在运行什么应用程序,都会在屏幕底部显示小图像(如弹出广告)。 这可能吗? (这不是编写应用程序的情况,而是让广告引擎将广告插入到我的应用程序中。我想要相反,没有任何集成)
答案 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本身的设计原则,人们可能会立即删除你的应用。