문제

내 앱이 APK를 설치하려고합니다.

Intent installIntent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
installIntent.setData(Uri.fromFile(new File(pathToApk)));
installIntent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
installIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true);
installIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
((Activity)context).startActivityForResult(installIntent, Constants.APP_INSTALL_REQUEST);

내 활동에서

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
        case Constants.APP_INSTALL_REQUEST:
            if(resultCode == RESULT_OK){
                Log.e(TAG, "Package Installation Success");
            }else if(resultCode == RESULT_FIRST_USER){
                Log.e(TAG, "Package Installation Cancelled by USER");
            }else{
                Log.e(TAG, "Something went wrong - INSTALLATION FAILED");
            }

내 startActivityResult가 발사되면 내 활동은 즉시 결과 코드 0을 가져옵니다.이 코드 0이 result_cancelled에 해당하는 동안 시스템 설치 UI가 여전히 사용자 권한을 기다리고 있습니다.

enter image description here

설치가 성공했는지 여부를 실제로 알 수있는 내 활동은 UI 업데이트를 기반으로합니다.

도움을 주셔서 감사합니다.

도움이 되었습니까?

해결책

범인을 찾았습니다.

*installintent.setflags (intent.flag_activity_new_task);*

시스템이 기존의 활동 인스턴스를 다시 생명으로 가져 오는 경우가 있습니다. 새로운 작업 스택. 따라서 시스템은 새로운 작업을 시작하기 전에 ActivityForresult를 취소합니다.

고맙습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top