투케이2K

207. (AndroidStudio/android/java) 안드로이드 신뢰성 있는 앱 등록 여부 및 알수 없는 앱 설치 허용 설정 창 (Settings) 이동 본문

Android

207. (AndroidStudio/android/java) 안드로이드 신뢰성 있는 앱 등록 여부 및 알수 없는 앱 설치 허용 설정 창 (Settings) 이동

투케이2K 2021. 10. 9. 15:27

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : java


[소스 코드]

	//TODO [안드로이드 8.0 이상 신뢰성 있는 앱 등록 및 출처를 알수 없는 앱 설치 허용 퍼미션]
	//<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />





	//TODO [안드로이드 8.0 이상 앱 신뢰성 등록 여부 확인 >> 현재 앱에서 다른 앱 APK 파일 설치 가능하게 설정]
	public void getTrustApp(){
		// 신뢰성 있는 앱으로 등록되어 있는지 확인 실시
		if(Build.VERSION.SDK_INT >= 26){ // 안드로이드 8.0 이상 (현재 앱 : 출처를 알 수 없는 앱 설정 허용 화면 띄우기)
			PackageManager pm = getPackageManager();

			// 현재 앱이 신뢰할 수 있는 앱으로 등록되어 있는지 확인 실시
			boolean trueFlag = pm.canRequestPackageInstalls();
			Log.d("---", "---");
			Log.w("//===========//", "================================================");
			Log.d("", "\n" + "[A_Test_Java > getTrustApp() 메소드 : 신뢰성 있는 앱 등록 여부 확인 실시]");
			Log.d("", "\n" + "[trueFlag : "+String.valueOf(trueFlag)+"]");
			Log.d("", "\n" + "[getPackageManager : "+String.valueOf(getPackageManager())+"]");
			Log.w("//===========//", "================================================");
			Log.d("---", "---");
			if (trueFlag == false){ // 신뢰할 수 있는 앱이 아닌 경우
				Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
				intent.setData(Uri.parse("package:" + getPackageName()));
				intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
				startActivity(intent);
			}
		}
	}





	//TODO [안드로이드 8.0 이상 출처를 알수 없는 앱 설치 허용 설정창 이동 메소드]
	public void getInstallApp(){
		// 안드로이드 8.0 이상 출처를 알 수 없는 앱 설정 화면 이동
		if(Build.VERSION.SDK_INT >= 26){
			Log.d("---", "---");
			Log.w("//===========//", "================================================");
			Log.d("", "\n" + "[A_Test_Java > getInstallApp() 메소드 : 알 수 없는 앱 설치 화면 이동 실시]");
			Log.w("//===========//", "================================================");
			Log.d("---", "---");

			Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
			intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
			startActivity(intent);
		}
	}

[결과 출력]


 

반응형
Comments