2012-03-28 3 views
0

사용자가 안드로이드 브라우저를 열었을 때 홈/onpause()이 브라우저를 서비스로 밀어 넣거나 그냥 브라우저에서 서비스를 시작하기 위해 누를 때 잡을 수 있습니까? 사용자가 집을 누르거나 전화를 잠그면 열어 두시겠습니까?서비스로 안드로이드 브라우저를 열어두기

예를 들어 사용자가 브라우저를 통해 인터넷 스트림을 듣고 집을 누르거나 화면을 잠그면 오디오가 끊깁니다. 그러나 오디오를 재생할 수 있도록 브라우저를 열어 놓고 싶습니다. 나는 서비스가 이것을 성취 할 수있는 유일한 방법 일 것이라고 생각하고 있습니다.

답변

0

홈 버튼 (onpause)을 눌렀을 때 내 앱에서 웹보기를 만들 수 있었고, 앱이 백그라운드에 있거나 화면이 잠겨있는 동안 브라우저를 사용하여 플래시 재생을 계속할 수있었습니다. 따라서 앱 외부에서 브라우저를 캡처 할 수는 없었지만 그 경험을 에뮬레이션하기 위해 효과적인 웹 뷰를 만들 수있었습니다.

나는 here 지침을 따라 webview를 만든 다음 서비스를 만들었습니다. 플래시가 제대로 재생 할 수 코드 (android:hardwareAccelerated="true")의 작품이었다 : 매니페스트

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

. 그것은 위대한 작품! (API는 3.0 이상이어야합니다)

0

사실 Android에서는 이것이 불가능합니다. 자연의 모든 클릭 및 사물은 앱을 통과해야합니다. 입니다. 일 수 있으며 Android 버그로 널리 간주됩니다. 기본적으로 아이디어는 앱 외부에서 어떤 것도 제어 할 수 없어야한다는 것입니다. 대신 앱 내에서만 클릭 수락을 허용 할 수 있으며 이러한 동작을 수행하려면 표준 Android 브라우저를 확장하여 사용자가 직접 구현하고 사용자가 대신 사용하도록해야합니다.

당신이 이것을 할 수없는 이유를 알기 위해서는 보안상의 영향을 고려해야합니다. 다른 응용 프로그램의 기능을 제어하고 다시 라우팅하여 표준 사용자 환경을 가로 챌 수 있습니다. 이전 버전의 Android에서 가능했던 일부 상황 (Google에서 '클릭 재킹'을 통해 확인할 수 있음)이 있지만 악성 앱이 아닌 경우에는이 작업을해서는 안됩니다.

+0

감사합니다. 적절한 행동을 취하는 방법을 구현할 수있는 아이디어가 있습니까? 내 앱에서 웹보기를 만들고 그 앱을 서비스로 만들거나 기본적으로 동일한 것일 수 있습니까? – Nick

+0

당신이 이해하지 못하는 서비스는 UI와 관련이없는 일을하기위한 것입니다. 브라우저는 본질적으로 UI와 연결됩니다. 서비스를받는 대신에 예를 들어, 뒤로 버튼을 조작하여 UI 이벤트를 잡아 적절하게 처리하는 것이 전부입니다. 그러나 홈 버튼의 동작은 변경할 수 없습니다. (시도하지 마십시오!) –

+0

나는 웹뷰와 서비스로 묻고있는 것을 할 수있었습니다. – Nick

관련 문제