Tôi có biểu tượng nổi ở trên tất cả các hoạt động nhưng khi thiết bị bị khóa, thiết bị sẽ biến mất cho đến khi thiết bị được mở khóa.Hiển thị chế độ xem bằng cách sử dụng trình quản lý cửa sổ trên màn hình khóa
Một ý nghĩa khác, tôi muốn hiển thị chế độ xem (FloatIcon) trên màn hình khóa bằng cách sử dụng trình quản lý cửa sổ từ dịch vụ.
Đây là mã của tôi cho đến thời điểm này.
public class FloatIcon extends Service {
private WindowManager windowManager;
private ImageView floatIcon;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
floatIcon = new ImageView(this);
floatIcon.setImageResource(R.drawable.ic_launcher);
floatIcon.setClickable(true);
floatIcon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getBaseContext(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(intent);
}
});
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED + WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
+ WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 100;
windowManager.addView(floatIcon, params);
}
@Override
public void onDestroy() {
super.onDestroy();
if (floatIcon != null)
windowManager.removeView(floatIcon);
}
}
Tôi không thể nhận được nội dung nào hữu ích khi tôi google.
Bạn đã giải quyết được sự cố này chưa? Nếu vậy, bạn có thể vui lòng cho tôi biết làm thế nào bạn thực hiện nó? – TahaYusuf