2012-09-07 3 views

답변

1

AccountManager 클래스를 사용하여 기기의 기존 계정을 getAccountsByType()으로 열거하고 원하는 계정 유형으로 com.google을 전달하려고 할 수 있습니다. 이 유형의 계정이 없다면 이는 AOSP 기기이거나 사용자가 Google 계정을 아직 ​​만들지 않았 음을 의미합니다.

충분하지 않은 경우 PackageManager 클래스를 사용하고 getPackageInfo() 방법을 사용하여 Google 특정 패키지를 쿼리 할 수 ​​있습니다. 예 : com.android.vending - Google Play 앱

그러나이 방법 중 어느 것도 대상 장치가 AOSP를 실행한다는 것을 보장 할 수는 없습니다.

0

이것은 사소한 것이 아니지만 대부분의 앱은 신경 쓸 필요가 없습니다. 그렇게하면 대개 고유 한 기능이 필요하다는 것을 의미하므로 장치에있는 레이블 대신 특정 기능이 있는지 여부를 확인하는 것이 더 간단합니다. 특정 패키지 (예 : Google Play)의 존재 여부를 확인할 수도 있지만, 패키지가 없다고해서 자동으로 해당 패키지 즉 화재가 발생하는 것은 아닙니다.

0

의도를 사용하여 시장 URL을 열 수 있는지 여부를 확인할 수 있습니다.

의도 사항에 관한 문서는 here입니다.

목적은 다음과 같을 것이다 :

try { 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setData(Uri.parse("market://details?id=com.example.android")); 
    //you can use any package identifier for the check. 
    startActivity(intent); 
} catch (ActvitiyNotFoundException anfe) { 
    //There's no market installed. 
    //So you can guess that you're not on a device with Google experience 
} 

이 방법의 단점은 것, 사용자가 그것을 사용할 수있는 경우 Play 스토어로 이동됩니다.

관련 문제