0
잠금 해제 화면을 표시하지 않고 정보를 표시해야합니다. 우리는 다음과 같은 코드에 의해 일반적으로이 작업을 수행 할 수 있습니다 :안드로이드 알림 화면 위의 잠금 화면 위의 활동 표시
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
그러나이 경우에는 알림 표시 줄에 알림 아이콘을 클릭에 있어야합니다. 어떻게 할 수 있습니까?
서비스가 실행 중이며 화면 잠금이 해제 된 후 정상적으로 작동합니다. 아이콘 클릭에 대한 활동을 엽니 다. 그러나 필요한 화면이 잠겨있을 때 그렇게 할 수 없습니다.
public class notifysrvc extends Service {
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
showRecordingNotification();
return Service.START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service Destroy", Toast.LENGTH_LONG).show();
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
private void showRecordingNotification() {
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.lifegaurdicon12)
.setContentTitle("Emergency")
.setOngoing(true)
.setPriority(Notification.PRIORITY_MAX)
.setContentText("Click here!");
// Creates an explicit intent for an Activity in your app
Intent resultIntent = new Intent(this, Menu.class);
//Tried this add flags to make it work
resultIntent.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// Adds the back stack for the Intent (but not the Intent itself)
stackBuilder.addParentStack(Menu.class);
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
}
}