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()); 
    } 
} 

답변

0
I tried it using remoteviews as suggested in few examples but it just doesn't work. 
I tried this but it just doesn't work 

     // NOTE: while creating pendingIntent: requestcode must be different! 
     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
       .setVisibility(Notification.VISIBILITY_PUBLIC) 
       .setSmallIcon(R.drawable.ic_launcher).setContentTitle("My Title") 
       .setContentText("Service running in the background") 
       .setOngoing(true); 
     Intent openIntent = new Intent(this, MainActivity.class); 


     PendingIntent pOpenIntent = PendingIntent.getActivity(this, 0, openIntent, 0); 
     mBuilder.setContentIntent(pOpenIntent); 
     // Gets an instance of the NotificationManager service 
     NotificationManager mNotifyMgr = 
       (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
// Builds the notification and issues it. 
     mNotifyMgr.notify(1090, mBuilder.build()); 
// Notification with exit button if supported 
     String ACTION_NOTIFICATION_EXITACTIVITY = "com.example.circle.myapplication.shownotifyactivity"; 
     Intent exitIntent = new Intent(); 
     exitIntent.setAction(ACTION_NOTIFICATION_EXITACTIVITY); 
     PendingIntent pExitIntent = PendingIntent.getBroadcast(this, 1, exitIntent, 0); 
     RemoteViews view = new RemoteViews(getPackageName(), R.layout.activity_shownotifyactivity); 
     view.setOnClickPendingIntent(R.id.notification_click, pExitIntent); 
     mBuilder.setContent(view); 
I tried the example [http://stackoverflow.com/questions/27673943/notification-action-button-not-clickable-in-lock-screen?answertab=active#tab-top][1] 


    [1]: http://stackoverflow.com/questions/27673943/notification-action-button-not-clickable-in-lock-screen?answertab=active#tab-top