public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {
super.onResume();
startService(new Intent().setClass(getApplicationContext(), MyService.class));
finish();
}
public static class MyService extends Service{
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
getOverlayPermission();
initView();
return super.onStartCommand(intent, flags, startId);
}
void initView(){
WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
Button bt = new Button(this);
bt.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
bt.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
bt.setText("float button");
bt.setTextSize(20);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
lp.gravity = Gravity.CENTER;
lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
lp.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
wm.addView(bt,lp);
}
private void getOverlayPermission() {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent); }
}
}
Service启动悬浮窗口
于 2019-02-16 15:36:56 首次发布