如何将通知设置活动添加到系统设置

问题描述 投票:14回答:2

在Android 5.0上,有一个选项可以通过Settings -> Sound & notification -> App notification -> Calendar (for example)直接进入应用程序的通知设置。 我也知道这是在这个DEV.BYTES talk中描述的清单中的一面旗帜。 如何实现,使用的标志是什么?

以下是更多说明的屏幕截图:

android android-manifest android-5.0-lollipop
2个回答
26
投票

你需要将Intent类别Notification.INTENT_CATEGORY_NOTIFICATION_PREFERENCES添加到你想要通过你的Activity启动的AndroidManifest。一个简单的例子是:

    <activity android:name="com.example.packagename.YourSettingsActivity" >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.NOTIFICATION_PREFERENCES" />
        </intent-filter>
    </activity>

有关更多信息,请参阅Settings应用程序,特别是NotificationAppListAppNotificationSettings片段。

结果


0
投票
  public void goToPushSettingPage(Context context){
    Intent intent=new Intent();
    if(android.os.Build.VERSION.SDK_INT>Build.VERSION_CODES.N_MR1){
        intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
        intent.putExtra(Settings.EXTRA_APP_PACKAGE,context.getPackageName());
    }else if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
        intent.putExtra(ConstUtil.PUSH_SETTING_APP_PACKAGE,context.getPackageName());
        intent.putExtra(ConstUtil.PUSH_SETTING_APP_UID,context.getApplicationInfo().uid);
    }else{
        intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        intent.setData(Uri.parse(ConstUtil.PUSH_SETTING_URI_PACKAGE+context.getPackageName()));
    }
    startActivity(intent);
}
© www.soinside.com 2019 - 2024. All rights reserved.