응용 프로그램이 이전에 설치되었는지 확인하는 방법은 무엇입니까? 첫 번째 설치 시간에 패키지 관리자 클래스를 검색 할 수 있지만이 메서드에서 반환 된 값은 응용 프로그램을 제거하고 다시 설치하여 다시 설정할 수 있음을 알고 있습니다. 예를 들어 Amazon이 이전에 설치되었거나 모바일에 설치되어 있지 않은지 확인하려면이 앱을 어떻게 사용합니까? StackOverflow를 검색했지만 나에게 아무런 효과가 없었습니다.확인 방법 응용 프로그램이 이전에 설치되었거나 설치되지 않았습니까?
답변
앱에 이 인 장치가 설치되어 있는지 확인할 수있는 일반적인 방법은 없습니다 (보안상의 이유로).
그러나 특정 앱을 목표로 삼는 경우 해당 앱의 접근 가능한 남은 부분이 sdcard에 있는지 예를 들어 분석 할 수 있습니다. 그런 다음 앱을 설치 한 경우 해당 파일의 존재 여부를 기반으로 앱을 확인할 수 있습니다.
자신의 앱 중 하나가 기기에 설치되어 있는지 알고 싶다면. 당신은 sdcard 접근법과 함께 가서 sdcard에 파일을 쓰고 다른 앱으로 읽을 수 있습니다.
나는 그 아이디어를 얻었다, 고마워. 최종 수정 된 폴더를 확인한 다음 사용자가 응용 프로그램에서 다시 설치하면 마지막 수정 값이 사용 가능한지 다시 확인할 수 있습니다. 이는 응용 프로그램이 이전에 설치되었고 값이 다시 변경된다는 것을 의미합니다. D. 맞지? : D –
@AmitKhatkar 예, 당신이 자신의 앱 중 하나가 설치되었는지 확인하고 싶다면 정말 쉽습니다. 그러나 당신이 체크하고 싶은 앱을 통제하지 못한다면, 예를 들어 SD 카드에 남아있는 것이 없다는 높은 가능성이 있습니다. – IIIIIIIIIIIIIIIIIIIIII
앱이 설치된 경우 첫 번째 설치 시간을 반환하고 그렇지 않으면 0을 반환합니다. D 'PackageInfo info = null; 긴 firstInstallTime = 0; { info = getPackageManager(). getPackageInfo (package, 0); 시도하십시오. firstInstallTime = info.firstInstallTime; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } Log.e ("firstinstall", String.valueOf (firstInstallTime)); ' –
당신은 SD 카드에 사용 기록 파일을 얻을 수 있습니다
File f = new File("path of your file & sdcard location");
if (f.isDirectory()) {
// Already installed your application get the file
}else{
// First time installed write a file here
f.mkdir();
}
사용자가 정크 파일을 지우면이 파일은 손실됩니다. 그래서이 파일을 잡을 수 없습니다! ... –
파일 경로는 응용 프로그램 캐시 디렉토리 또는 제거 된 응용 프로그램 이후에 제거 할 수있는 getFilesDir()이 아니라 sdcard에 있어야합니다. 영구히 저장되는 특정 위치에 있어야합니다. –
이있을 수 있습니다 시도 그것을 도움이
우리가 "( 부울 isAppInstalled = appInstalledOrNot을 확인 할//를 사용하여 패키지 이름 COM .check.application ");
if(isAppInstalled) {
//This intent will help you to launch if the package is already installed
Intent LaunchIntent = getPackageManager()
.getLaunchIntentForPackage("com.check.application");
startActivity(LaunchIntent);
Log.i("Application is already installed.");
} else {
// Do whatever we want to do if application not installed
// For example, Redirect to play store
Log.i("Application is not currently installed.");
}
}
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
}
return false;
}
그것을 닦았습니다. btw 당신의 대답은 정확하지 않습니다. 난 그냥 응용 프로그램이 설치되어 있는지 확인하려는 응용 프로그램을 시작하고 싶지 않아요. –
나는 그것이 가능하지 않을 것이라고 확신합니다. 사용자가 설치 한 앱에 대한 정보에 액세스해서는 안됩니다. –
@ VladMatvienko 나는 그것을 sloved했다 :) –