❶ oppo手機android系統通知怎麼關閉
通知管理的方式
桌面應用總是有彈窗廣告出來,怎麼一鍵關閉呢,通知管理就可以管理所有應用的通知許可權,您可以自行選擇各應用通知的展現方式哦~
設置方法:
1、前往「設置 > 通知與狀態欄 > 通知管理」。
(1)鎖屏通知:手機鎖屏時是否接收通知。
顯示通知內容、顯示通知但隱藏內容、不顯示。
(2)桌面角標:選擇來通知時在桌面圖標上顯示數字角標、圓點角標或無角標。
混合(數字角標和圓點角標混用)、數字(應用存在未讀消息時顯示)、圓點(應用存在通知時持續顯示)、不顯示。
(3)更多:
不重要通知:不折疊、折疊至底部。
通知歷史:可查看過往通知和已延時通知。
允許顯示延時通知
全屏時顯示簡潔橫幅通知
全屏時通知輕反饋:全屏時(例如看視頻、打游戲)通知鈴聲更輕柔並且振動減弱。
鎖屏時來電通知時亮屏
(4)選擇需要設置通知管理的應用,如「「嗶哩嗶哩」APP > 開啟或關閉允許通知」, 根據實際需求設置應用通知(是否允許通知及類別項)。
2、若為桌面應用,可長按桌面「應用圖標 > 點擊「應用信息(詳情)」 > 通知管理」,根據實際需求設置應用通知(是否允許通知及類別項)。
3、開啟應用的通知許可權後,應用的常規推送會集中展示在通知中心(狀態欄通知)。在解鎖後的任意屏幕下,從屏幕頂部向下輕掃,即可看到通知中心的消息。
❷ android8.0之懸浮窗和通知欄
懸浮窗:
使用場景:例如微信在視頻的時候,點擊Home鍵,視頻小窗口仍然會在屏幕上顯示;
注意事項:
1、一般需要在後台進行操作的時候才需要懸浮窗,這樣懸浮窗才有意義;
2、API Level >= 23的時候,需要在AndroidManefest.xml文件中聲明許可權SYSTEM_ALERT_WINDOW才能在其他應用上繪制控制項。
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />;除了這個許可權外,我們還需要在系統設置裡面對本應用進行設置懸浮窗許可權。該許可權在應用中需要啟動Settings.ACTION_MANAGE_OVERLAY_PERMISSION來讓用戶手動設置許可權:startActivityForResult(new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())), REQUEST_CODE);
3、LayoutParam設置:LayoutParam里的type變數。這個變數是用來指定窗口類型的。在設置這個變數時,需要注意一個坑,那就是需要對不同版本的Android系統進行適配。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
} else {
layoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;
};在Android 8.0之前,懸浮窗口設置可以為TYPE_PHONE,這種類型是用於提供用戶交互操作的非應用窗口。
而Android 8.0對系統和API行為做了修改,包括使用SYSTEM_ALERT_WINDOW許可權的應用無法再使用一下窗口類型來在其他應用和窗口上方顯示提醒窗口:
- TYPE_PHONE
- TYPE_PRIORITY_PHONE
- TYPE_SYSTEM_ALERT
- TYPE_SYSTEM_OVERLAY
- TYPE_SYSTEM_ERROR
如果需要實現在其他應用和窗口上方顯示提醒窗口,那麼必須該為TYPE_APPLICATION_OVERLAY的新類型;
如果在Android 8.0以上版本仍然使用TYPE_PHONE類型的懸浮窗口,則會出現如下異常信息:
android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@f8ec928 -- permission denied for window type 2002;
具體實現:
1、Activity:
public void startFloatingService(View view) {
...
if (!Settings.canDrawOverlays(this)) {
Toast.makeText(this, "當前無許可權,請授權", Toast.LENGTH_SHORT);
startActivityForResult(new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())), 0);
} else {
startService(new Intent(MainActivity.this, FloatingService.class));
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0) {
if (!Settings.canDrawOverlays(this)) {
Toast.makeText(this, "授權失敗", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "授權成功", Toast.LENGTH_SHORT).show();
startService(new Intent(MainActivity.this, FloatingService.class));
}
}
}
2、service:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
showFloatingWindow();
return super.onStartCommand(intent, flags, startId);
}
private void showFloatingWindow() {
if (Settings.canDrawOverlays(this)) {
// 獲取WindowManager服務
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
// 新建懸浮窗控制項
Button button = new Button(getApplicationContext());
button.setText("Floating Window");
button.setBackgroundColor(Color.BLUE);
// 設置LayoutParam
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
} else {
layoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;
}
layoutParams.format = PixelFormat.RGBA_8888;
layoutParams.width = 500;
layoutParams.height = 100;
layoutParams.x = 300;
layoutParams.y = 300;
// 將懸浮窗控制項添加到WindowManager
windowManager.addView(button, layoutParams);
}
}
效果展示:
❸ Android系統的通知欄管理如何開啟和關閉
開啟通知欄方法請查看以下內容:
用手指從屏幕頂部由上至下滑動屏幕即可。