c# 강좌 - 프로그래밍 방식으로 동작 센터 켜기 / 끄기




차이 uwp (2)

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer] "DisableNotificationCenter" 키를 dword:00000000

Registry.SetValue("HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer", "DisableNotificationCenter", 0, RegistryValueKind.DWord);

Defender 알림을 사용하려면 다음 단계를 따르세요.

Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\UX Configuration", "Notification_Suppress", 0, RegistryValueKind.DWord);

Windows 업데이트와 관련하여 어떤 알림을 사용하려고하는지 정확히 모르겠습니다.

프로그래밍 방식으로 동작 센터를 설정 / 해제하는 방법이 있습니까? 또한 프로그래밍 방식으로 특정 알림을 설정 / 해제하는 방법이 있는지 알고 싶습니다. 제조 과정에서 우리는 꺼져있는 Windows 10의 기본 이미지를 사용하고 우리가 만드는 응용 프로그램에 대한 패치 작업을하고 있습니다. 내가 맡은 일 중 하나는 내 패치로 다시 켜는 것이다.

나는 Toast Notifications를하는 법을 알 필요가 없다. 액션 센터를 보이게하고 Windows Updates 및 Defender에 대한 알림을 켜기 만하면됩니다.


시행 착오를 여러 번 반복 한 결과, 알림 작업을 클릭 할 때 임의의 메서드를 실행하는 것이 훨씬 간단하고 명확한 방법을 찾았습니다. 내 솔루션에는 통지를 생성하는 하나의 클래스 (NotificationUtils라고 부름)가 있으며 통지의 조치가 클릭 될 때 실행할 IntentService 정적 내부 클래스가 포함되어 있습니다. 다음은 AndroidManifest.xml에 필요한 변경 사항이 뒤 따르는 NotificationUtils 클래스입니다.

public class NotificationUtils {
    public static final int NOTIFICATION_ID = 1;

    public static final String ACTION_1 = "action_1";

    public static void displayNotification(Context context) {

        Intent action1Intent = new Intent(context, NotificationActionService.class)
            .setAction(ACTION_1);

        PendingIntent action1PendingIntent = PendingIntent.getService(context, 0,
                action1Intent, PendingIntent.FLAG_ONE_SHOT);

        NotificationCompat.Builder notificationBuilder =
                new NotificationCompat.Builder(context)
                        .setSmallIcon(R.drawable.ic_launcher)
                        .setContentTitle("Sample Notification")
                        .setContentText("Notification text goes here")
                        .addAction(new NotificationCompat.Action(R.drawable.ic_launcher,
                                "Action 1", action1PendingIntent));

        NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
        notificationManager.notify(NOTIFICATION_ID, notificationBuilder.build());
    }

    public static class NotificationActionService extends IntentService {
        public NotificationActionService() {
            super(NotificationActionService.class.getSimpleName());
        }

        @Override
        protected void onHandleIntent(Intent intent) {
            String action = intent.getAction();
            DebugUtils.log("Received notification action: " + action);
            if (ACTION_1.equals(action)) {
                // TODO: handle action 1.
                // If you want to cancel the notification: NotificationManagerCompat.from(this).cancel(NOTIFICATION_ID);
            }
        }
}

이제 onHandleIntent에서 액션을 구현하고 NotificationActionService를 <application> 태그 내의 매니페스트에 추가하면됩니다.

<service android:name=".NotificationUtils$NotificationActionService" />

개요:

  • 알림을 만들 클래스를 만듭니다.
  • 이 클래스 내부에서 IntentService 내부 클래스를 추가합니다 ( 정적 인 지 또는 숨겨진 오류가 발생합니다! ). 클릭 한 액션을 기반으로 메소드를 실행할 수 있습니다.
  • 매니페스트에서 IntentService 클래스를 선언하십시오.






c# notifications registrykey