android8.0 이상 업데이트 apk 설치 인터페이스가 팝업되지 않은 해결 방법

2196 단어 android
apk를 업데이트하기 전에 쓴 코드는android7.0 버전,android8.0,android9.0 다운로드에 성공한 후 화면이 깜빡이고 시스템 설치 인터페이스로 넘어가지 않았습니다. 그 다음에 자료를 찾아보면android8을 알 수 있습니다.0 Google play 인증을 받지 않은 애플리케이션을 설치할 수 없는 새로운 보안 기능이 추가되었으므로 8.0, 9.0 시스템을 적절히 설치해야 합니다.
첫 번째 단계는 xml 파일에 권한을 적습니다
  • 명세서 파일에 다음과 같은 권한을 추가합니다.
  •  

    아무 소용이 없는 것을 발견했습니다. 알고 보니 알 수 없는 응용 프로그램을 설치할 권한이 없습니다
    알 수 없는 응용 프로그램을 설치할 수 있는지 판단합니다
    8.0의 Package Manager 클래스에 canRequestPackageInstalls () 가 많아서 알 수 없는 응용 프로그램을 설치할 수 있는지 확인합니다.
    if (Build.VERSION.SDK_INT>=26){
        boolean hasInstallPermission = isHasInstallPermissionWithO(mContext);
        if (!hasInstallPermission) {
            startInstallPermissionSettingActivity(mContext);
            return;
        }

    }
    @RequiresApi(api = Build.VERSION_CODES.O)
    private boolean isHasInstallPermissionWithO(Context context){
        if (context == null){
            return false;
        }
        return context.getPackageManager().canRequestPackageInstalls();
    }

    startInstallPermissionSettingActivity 방법은 알 수 없는 원본 응용 권한 설정 인터페이스를 열고 apk의 패키지 이름을 써서 현재 apk 권한 인터페이스로 바로 이동하는 것입니다
     
    /**
     *                 
     * @param context
     */
    @RequiresApi(api = Build.VERSION_CODES.O)
    private void startInstallPermissionSettingActivity(Context context) {
        if (context == null) {
            return;
        }
        Intent intent = new Intent();
        //    apk URI,    intent (     ,  “          ”           )
        Uri packageURI = Uri.parse("package:" + context.getPackageName());
        intent.setData(packageURI);
        //               
        if (Build.VERSION.SDK_INT >= 26) {
            //intent = new Intent(android.provider.Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES,packageURI);
            intent.setAction(android.provider.Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
        } else {
            intent.setAction(android.provider.Settings.ACTION_SECURITY_SETTINGS);
        }
        ((Activity) context).startActivity(intent);
        Toast.makeText(mContext, "           ", Toast.LENGTH_SHORT).show();
    }
    

    이렇게 해서 8.0 이상 핸드폰이 잘 어울려요.

    좋은 웹페이지 즐겨찾기