1

このコードからバッテリー レベルの永続的な通知を作成することは可能ですか?:

public void onCreate(Bundle savedInstanceState) {
    ...
    this.registerReceiver(this.myBatteryReceiver , new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    ...
}

private BroadcastReceiver myBatteryReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
        //here you can use level as you wish.
    }
};

そして、これは通知の例です。

private void CheckNoti(){ 
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
                                service.this);
                notificationBuilder.setContentTitle("Title");
                notificationBuilder.setContentText("Context");
                notificationBuilder.setTicker("TickerText");
                notificationBuilder.setWhen(System.currentTimeMillis());
                notificationBuilder.setSmallIcon(R.drawable.ic_stat_icon);

                Intent notificationIntent = new Intent(this, service.class);
                PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                                notificationIntent, 0);

                notificationBuilder.setContentIntent(contentIntent);

                notificationBuilder.setDefaults(Notification.DEFAULT_SOUND
                                | Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE);

                mNotificationManager.notify(1,
                                notificationBuilder.build());
    }   }

可能であれば、バッテリー レベルで永続的な通知を作成する必要があります。どうすればできますか?

4

1 に答える 1

2

進行中のフラグを使用します: http://developer.android.com/reference/android/app/Notification.Builder.html#setOngoing%28boolean%29

ユーザーは通知をキャンセルすることはできませんので、不要になったら忘れずに削除してください。

切り替えるには、 PreferenceActivityまたはPreferenceFragmentをアプリに追加する必要があります。次に、checkboxPreference を追加します: http://developer.android.com/guide/topics/ui/settings.html

コードで、この特定の設定を切り替えることができるようになりました:

boolean permanent = PreferenceManager.getDefaultSharedPreferences(context).getBoolean("permanent", false);
if(permanent) {
    notificationBuilder.setOngoing(true);
}
于 2013-07-30T14:05:14.833 に答える