是否有可能在用戶打開android瀏覽器趕上時,按下home/onpause()
爲了推動瀏覽器服務或只是從服務啓動瀏覽器,以便當用戶按下家中或鎖定電話時保持打開狀態?保持android瀏覽器打開服務
例如,如果用戶正在通過瀏覽器收聽互聯網流,並且他們按回家或鎖定屏幕,則音頻將被截斷。不過,我想讓瀏覽器保持打開狀態,以便繼續播放音頻。我覺得服務是實現這一目標的唯一方法。
是否有可能在用戶打開android瀏覽器趕上時,按下home/onpause()
爲了推動瀏覽器服務或只是從服務啓動瀏覽器,以便當用戶按下家中或鎖定電話時保持打開狀態?保持android瀏覽器打開服務
例如,如果用戶正在通過瀏覽器收聽互聯網流,並且他們按回家或鎖定屏幕,則音頻將被截斷。不過,我想讓瀏覽器保持打開狀態,以便繼續播放音頻。我覺得服務是實現這一目標的唯一方法。
我可以在我的應用程序中創建一個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或更高)
事實上,這是(並應該是)Android內不可能的。所有點擊和這種性質的東西都應該通過你的應用程序。有是一些不好的情況下,你可以可以做到這一點,它被廣泛認爲是一個Android的錯誤。基本上,這個想法是,你不應該能夠控制你的應用以外的任何東西。相反,您只能接受應用內的點擊,而獲取此行爲需要使用自己的實施擴展標準Android瀏覽器,並讓用戶使用它。
要明白爲什麼你不能這樣做,考慮它會帶來的安全隱患,你可以控制和重新路由來自其他應用的功能來劫持他們的標準用戶體驗。在某些情況下(你可以通過谷歌「點擊劫持」來查看一些),但在任何非惡意應用程序中,你真的不應該這樣做。
謝謝,這是很好的知道。你有想法,我怎麼能實現,符合正確的行爲?我可以在我的應用程序中創建一個webview並讓應用程序成爲一項服務或者本質上是一樣的嗎? – Nick 2012-03-28 15:15:21
你不理解,服務是爲了做與UI不相關的事情。瀏覽器將固有地與UI相關聯。例如,您可以通過處理後退按鈕來捕獲UI事件並正確處理它們,而不是通過服務。但是請注意,您無法更改主頁按鈕的行爲。 (請不要嘗試!) – 2012-03-28 15:44:10
我能夠完成我所要求的webview和服務。 – Nick 2012-03-29 00:26:34