1. 程式人生 > >Target sdk 26 (Android 8.0)一些版本相容問題

Target sdk 26 (Android 8.0)一些版本相容問題

 1、通知欄 

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                NotificationChannel channel = new NotificationChannel(id, name, NotificationManager.IMPORTANCE_LOW);
                getNotifyMgr(context).createNotificationChannel(channel);
                builder = new NotificationCompat.Builder(context, id);

            } else {
                builder = new NotificationCompat.Builder(context);
            }

參考:

2、版本升級,下載app後不能自動更新安裝

<!--針對android 8.0 應用是否有安裝許可權-->
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
//相容8.0
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                boolean hasInstallPermission = getPackageManager().canRequestPackageInstalls();
                if (!hasInstallPermission) {
                    Tip.toast(this, "請開啟安裝未知應用的許可!");
                    startInstallPermissionSettingActivity(this);
                    return;
                }
            }




/**
     * 跳轉到設定-允許安裝未知來源-頁面
     */
    @RequiresApi(api = Build.VERSION_CODES.O)
    private void startInstallPermissionSettingActivity(Context context) {
        //注意這個是8.0新API
        Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }

參考 :

3、設定app內語言