Настройки уведомлений приложения Android Lollipop

В Android Lollipop, когда вы долго нажимаете на уведомление, оно дает вам доступ к настройкам этого приложения для уведомлений, таким как приоритет или просто его блокировка. Есть ли намерение, которое я могу использовать для доступа к этим настройкам?


person Kyle Jahnke    schedule 01.03.2015    source источник
comment
Если вы хотите прослушивать изменения фильтра уведомлений, используйте службу NotificationListenerService. Существует прослушиватель, который вы можете использовать для обнаружения изменения фильтра (developer.android.com/reference/android/service/notification/). Если вы хотите, чтобы пользователь мог перейти к этому экрану из вашего приложения, используйте намерение INTENT_CATEGORY_NOTIFICATION_PREFERENCES (developer.android.com/reference/android/app/)   -  person Tristan    schedule 01.03.2015
comment
Ваш ответ был каким-то нелогичным, NotificationListenerService не имеет ничего общего с моим вопросом. Но категория намерений была тем, что я искал.   -  person Kyle Jahnke    schedule 04.03.2015
comment
@KyleJahnke у тебя получилось? Я ищу некоторую информацию об этом   -  person Shmuel    schedule 02.08.2015
comment
Возможный дубликат Как добавить действие настроек уведомлений в системные настройки   -  person Eugen Pechanec    schedule 16.02.2016


Ответы (2)



В дополнение к правильному ответу от @shmuel:

Если вы хотите, чтобы эта системная кнопка «Настройки приложения» переходила к одному конкретному фрагменту действия «Настройки» вашего приложения, полученного из PreferenceActivity, вы можете создать фиктивное промежуточное действие для обработки фильтра намерений, как указано выше, а затем в этом действии вы просто делать:

public class DeepSettingsFragmentDummyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent settingsIntent = new Intent(this, SettingsActivity.class);
        // Standard mechanism for a PreferenceActivity intent to indicate
        // which fragment to activate automatically.
        settingsIntent.putExtra( PreferenceActivity.EXTRA_SHOW_FRAGMENT,
            YourTargetPreferenceFragment.class.getName());

        startActivity(settingsIntent);
        finish();
    }
}

Этот код автоматически запускает фрагмент YourTargetPreferenceFragment, а затем закрывает себя (finish()), чтобы не оставаться в стеке действий, когда пользователь нажимает «Назад».

Ваш манифест должен содержать:

    <activity
        android:name=".DeepSettingsFragmentDummyActivity"
        android:label="...">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.NOTIFICATION_PREFERENCES" />
        </intent-filter>
    </activity>
person Gabriel    schedule 05.05.2016
comment
вы можете открыть основное действие как есть и проверить наличие намерения.getCategories().contains(android.intent.category.NOTIFICATION_PREFERENCES), которое сообщит, было ли оно открыто с этой кнопки - person ndori; 26.04.2017