Search code examples
androidnotificationsbrightness

Change brightness on Notification


Code for notification:

mNotificationManager = 
             (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    final Notification notifyDetails = 
            new Notification(R.drawable.ic_launcher,"New Alert, Click Me!",System.currentTimeMillis());
    Context context = getApplicationContext();
      notifyDetails.
    CharSequence contentTitle = "Notification Details...";

    CharSequence contentText = "Browse Android Official Site by clicking me";
    Intent notifyIntent = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("http://www.android.com"));

    PendingIntent intent1 = 
          PendingIntent.getActivity(this, 0, 
          notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
    notifyDetails.setLatestEventInfo(context, contentTitle, contentText, intent1);
    mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails);

My notification works fine, what I want to happen is the screen brightness to increase to a certain value when the notification pops up.

I used Eclipse's auto complete feature to find the right function, but none work. I also searched quite a bit, no luck.

How do I solve this?


Solution

  • I've had a similar brightness problem some time ago. Take a look at this answer. It should point you in the right direction.

    Add this to your activity:

    Settings.System.putInt(getContentResolver(),
                        Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
    Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 255);//255 here is your brightness value, an integer that can be between 0 and 255.
    float brightness = 1.0f; //Your desired brightness, float value between 0.0 and 1.0
    WindowManager.LayoutParams lp = getWindow().getAttributes();
    lp.screenBrightness = brightness;
    getWindow().setAttributes(lp);
    

    and add this permission to the AndroidManifest.xml:

    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    

    I've just tested it and this code works on Android 4.1.