Android 응용 프로그램 위에 항상 오버레이 창을 그릴 수 있습니까?Android (시스템 전체)에 오버레이 그리기
Android x86 포트를 사용 중이며 시스템 권한이 있습니다.
@ 편집 : 오버레이 아래의보기는 모든 이벤트를 수신해야합니다.
Android 응용 프로그램 위에 항상 오버레이 창을 그릴 수 있습니까?Android (시스템 전체)에 오버레이 그리기
Android x86 포트를 사용 중이며 시스템 권한이 있습니다.
@ 편집 : 오버레이 아래의보기는 모든 이벤트를 수신해야합니다.
그것은 할 가능성이 현재 WindowManager
에서보기를 추가하는 Service
를 만들어 :
public class OverlayService extends Service {
@Override
public void onCreate() {
super.onCreate();
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
View overlay = /* create your overlay here */;
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
PixelFormat.TRANSLUCENT);
windowManager.addView(overlay , params);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
하지만 당신이 여분의 허락이 필요합니다
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
그리고 단지에 서비스를 등록을 매니페스트 :
<service android:name=".OverlayService" ></service>
및 st 예술 작품 :
startService(new Intent(this, OverlayService.class));
AFAIK SDK 내에 합법적 인 방법이 없습니다. 그러나 시장에 나와있는 일부 앱에서는이를 달성 할 수있었습니다. 영원히 작동하지 않을 방법을 찾으면 올바른 보안상의 이유로 공개 API를 포함하지 않기로 결정했습니다. – FoamyGuy
Android 마켓을위한 것이 아닙니다. Android 자체를 수정하고 싶습니다. – Friedrich