2017-04-04 8 views
-2

응용 프로그램이 이전에 설치되었는지 확인하는 방법은 무엇입니까? 첫 번째 설치 시간에 패키지 관리자 클래스를 검색 할 수 있지만이 메서드에서 반환 된 값은 응용 프로그램을 제거하고 다시 설치하여 다시 설정할 수 있음을 알고 있습니다. 예를 들어 Amazon이 이전에 설치되었거나 모바일에 설치되어 있지 않은지 확인하려면이 앱을 어떻게 사용합니까? StackOverflow를 검색했지만 나에게 아무런 효과가 없었습니다.확인 방법 응용 프로그램이 이전에 설치되었거나 설치되지 않았습니까?

+0

나는 그것이 가능하지 않을 것이라고 확신합니다. 사용자가 설치 한 앱에 대한 정보에 액세스해서는 안됩니다. –

+0

@ VladMatvienko 나는 그것을 sloved했다 :) –

답변

0

앱에 인 장치가 설치되어 있는지 확인할 수있는 일반적인 방법은 없습니다 (보안상의 이유로).

그러나 특정 앱을 목표로 삼는 경우 해당 앱의 접근 가능한 남은 부분이 sdcard에 있는지 예를 들어 분석 할 수 있습니다. 그런 다음 앱을 설치 한 경우 해당 파일의 존재 여부를 기반으로 앱을 확인할 수 있습니다.

자신의 앱 중 하나가 기기에 설치되어 있는지 알고 싶다면. 당신은 sdcard 접근법과 함께 가서 sdcard에 파일을 쓰고 다른 앱으로 읽을 수 있습니다.

+0

나는 그 아이디어를 얻었다, 고마워. 최종 수정 된 폴더를 확인한 다음 사용자가 응용 프로그램에서 다시 설치하면 마지막 수정 값이 사용 가능한지 다시 확인할 수 있습니다. 이는 응용 프로그램이 이전에 설치되었고 값이 다시 변경된다는 것을 의미합니다. D. 맞지? : D –

+0

@AmitKhatkar 예, 당신이 자신의 앱 중 하나가 설치되었는지 확인하고 싶다면 정말 쉽습니다. 그러나 당신이 체크하고 싶은 앱을 통제하지 못한다면, 예를 들어 SD 카드에 남아있는 것이 없다는 높은 가능성이 있습니다. – IIIIIIIIIIIIIIIIIIIIII

+0

앱이 설치된 경우 첫 번째 설치 시간을 반환하고 그렇지 않으면 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)); ' –

-1

당신은 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(); 
    } 
+0

사용자가 정크 파일을 지우면이 파일은 손실됩니다. 그래서이 파일을 잡을 수 없습니다! ... –

+0

파일 경로는 응용 프로그램 캐시 디렉토리 또는 제거 된 응용 프로그램 이후에 제거 할 수있는 getFilesDir()이 아니라 sdcard에 있어야합니다. 영구히 저장되는 특정 위치에 있어야합니다. –

1

이있을 수 있습니다 시도 그것을 도움이

우리가 "( 부울 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; 
} 
+0

그것을 닦았습니다. btw 당신의 대답은 정확하지 않습니다. 난 그냥 응용 프로그램이 설치되어 있는지 확인하려는 응용 프로그램을 시작하고 싶지 않아요. –