Изменить яркость в уведомлении

Код для уведомления:

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

Мое уведомление работает нормально, я хочу, чтобы яркость экрана увеличивалась до определенного значения, когда всплывает уведомление.

Я использовал функцию автоматического завершения Eclipse, чтобы найти нужную функцию, но ни одна из них не работает. Я тоже искал совсем немного, не повезло.

Как мне это решить?


person Karthik Balakrishnan    schedule 15.01.2013    source источник


Ответы (1)


У меня была аналогичная проблема с яркостью некоторое время назад. Взгляните на этот ответ. Он должен указать вам правильное направление.

Добавьте это в свою деятельность:

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

и добавьте это разрешение в AndroidManifest.xml:

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

Я только что протестировал его, и этот код работает на Android 4.1.

person Anton Cherkashyn    schedule 15.01.2013
comment
Я не хочу менять яркость с помощью фиктивной активности. Когда мое приложение получает уведомление, я бы хотел, чтобы яркость телефона увеличилась. - person Karthik Balakrishnan; 15.01.2013
comment
Так что не используйте фиктивную часть активности, просто используйте код, который меняет яркость. Это там. Или вы хотите, чтобы я скопировал это для вас? - person Anton Cherkashyn; 15.01.2013
comment
Не могли бы вы показать мне, как я могу изменить яркость с помощью уведомления? С кодом это было бы очень полезно :) - person Karthik Balakrishnan; 15.01.2013
comment
Я понял, что это часть редактирования яркости. Должен ли я вызывать уведомление после этого? - person Karthik Balakrishnan; 15.01.2013
comment
Ну, это зависит от того, как вы хотите справиться с этим. Я бы сначала показывал уведомление, а потом менял яркость. Но я полагаю, что это сработает так же хорошо, если вы сделаете это в обратном порядке. - person Anton Cherkashyn; 15.01.2013
comment
Яркость не меняется, хотя я вызвал уведомление. - person Karthik Balakrishnan; 15.01.2013
comment
Обновил ответ еще раз. Я протестировал этот код, и он работает. - person Anton Cherkashyn; 15.01.2013
comment
Это код, который я использую. Я забыл упомянуть тот факт, что я использую услугу. Итак, я хочу, чтобы яркость обновлялась при уведомлении. Должен ли я вызывать фиктивную активность? - person Karthik Balakrishnan; 15.01.2013
comment
Да, вы должны использовать фиктивную активность. - person Anton Cherkashyn; 15.01.2013