2012-03-28 107 views
0

是否有可能在用户打开android浏览器赶上时,按下home/onpause()为了推动浏览器服务或只是从服务启动浏览器,以便当用户按下家中或锁定电话时保持打开状态?保持android浏览器打开服务

例如,如果用户正在通过浏览器收听互联网流,并且他们按回家或锁定屏幕,则音频将被截断。不过,我想让浏览器保持打开状态,以便继续播放音频。我觉得服务是实现这一目标的唯一方法。

回答

0

我可以在我的应用程序中创建一个webview,并在主页按钮(onpause)被按下时启动一项服务,使得浏览器在应用程序在后台或屏幕锁定时继续播放Flash。所以,虽然我无法在应用程序外部使用捕获浏览器,但我能够制作出有效的webview来模拟该体验。

我按照指示here来创建webview然后提供服务。这件作品的,允许Flash正常打码(android:hardwareAccelerated="true")是:

<application android:hardwareAccelerated="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
在清单

。它很棒! (然而,API必须是3.0或更高)

0

事实上,这是(并应该是)Android内不可能的。所有点击和这种性质的东西都应该通过你的应用程序。有一些不好的情况下,你可以可以做到这一点,它被广泛认为是一个Android的错误。基本上,这个想法是,你不应该能够控制你的应用以外的任何东西。相反,您只能接受应用内的点击,而获取此行为需要使用自己的实施扩展标准Android浏览器,并让用户使用它。

要明白为什么你不能这样做,考虑它会带来的安全隐患,你可以控制和重新路由来自其他应用的功能来劫持他们的标准用户体验。在某些情况下(你可以通过谷歌“点击劫持”来查看一些),但在任何非恶意应用程序中,你真的不应该这样做。

+0

谢谢,这是很好的知道。你有想法,我怎么能实现,符合正确的行为?我可以在我的应用程序中创建一个webview并让应用程序成为一项服务或者本质上是一样的吗? – Nick 2012-03-28 15:15:21

+0

你不理解,服务是为了做与UI不相关的事情。浏览器将固有地与UI相关联。例如,您可以通过处理后退按钮来捕获UI事件并正确处理它们,而不是通过服务。但是请注意,您无法更改主页按钮的行为。 (请不要尝试!) – 2012-03-28 15:44:10

+0

我能够完成我所要求的webview和服务。 – Nick 2012-03-29 00:26:34