有没有一种方法来在任何Android应用?
Is there a way to draw an overlay window always on top of any android application?
我使用的是Android的x86端口,并具有系统权限。
I am using Android x86 port and have system rights.
@Edit:覆盖层下面的观点应该得到的所有事件
@ The view below the overlay should receive all events.
这是可能做到这一点通过创建一个服务
,增加的观点在目前的窗口管理器
:
It's possible to do that by creating a Service
that adds the view in the current WindowManager
:
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;
}
}
但你需要这个额外的权限:
But you need this extra permission:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
然后把刚才注册清单中的服务:
And then just register the service in the manifest:
<service android:name=".OverlayService" ></service>
和启动:
startService(new Intent(this, OverlayService.class));
上一篇:Android的 - 如何正确处理的onPause / onResume方法呢?正确处理、方法、Android、onResume
下一篇:如何从doInBackground()方法返回的JSONObject到onPostExecute()上AsyncTask的方法?方法、doInBackground、JSONObject、AsyncTa