검색 한 내용과 찾을 수없는 내용이 있습니다. 검색 대상을 아는 것이 주된 문제이지만 이전에 요청한 내용 일 것입니다.AOSP 또는 Google Android를 실행 중이라고 알리시겠습니까?
앱이 "Google Android"기기 또는 AOSP 기기 (예 : Kindle Fire 등)에서 실행 중인지 여부는 어떻게 알 수 있습니까?
검색 한 내용과 찾을 수없는 내용이 있습니다. 검색 대상을 아는 것이 주된 문제이지만 이전에 요청한 내용 일 것입니다.AOSP 또는 Google Android를 실행 중이라고 알리시겠습니까?
앱이 "Google Android"기기 또는 AOSP 기기 (예 : Kindle Fire 등)에서 실행 중인지 여부는 어떻게 알 수 있습니까?
AccountManager
클래스를 사용하여 기기의 기존 계정을 getAccountsByType()으로 열거하고 원하는 계정 유형으로 com.google
을 전달하려고 할 수 있습니다. 이 유형의 계정이 없다면 이는 AOSP 기기이거나 사용자가 Google 계정을 아직 만들지 않았 음을 의미합니다.
충분하지 않은 경우 PackageManager
클래스를 사용하고 getPackageInfo() 방법을 사용하여 Google 특정 패키지를 쿼리 할 수 있습니다. 예 : com.android.vending
- Google Play 앱
그러나이 방법 중 어느 것도 대상 장치가 AOSP를 실행한다는 것을 보장 할 수는 없습니다.
이것은 사소한 것이 아니지만 대부분의 앱은 신경 쓸 필요가 없습니다. 그렇게하면 대개 고유 한 기능이 필요하다는 것을 의미하므로 장치에있는 레이블 대신 특정 기능이 있는지 여부를 확인하는 것이 더 간단합니다. 특정 패키지 (예 : Google Play)의 존재 여부를 확인할 수도 있지만, 패키지가 없다고해서 자동으로 해당 패키지 즉 화재가 발생하는 것은 아닙니다.
의도를 사용하여 시장 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 스토어로 이동됩니다.