2013-04-14 2 views
2

내가 개발중인 앱에서 설치된 앱을 반복하고 어떤 앱이 게임인지 감지해야합니다. 이 일을 할 수있는 방법이 있습니까?안드로이드 앱이 게임인지 알아내는 방법?

Play 스토어 API를 사용하여 패키지 이름을 검색하고 상점의 앱에만 제한된 경우에도 상품 카테고리를 반환 할 수 있다고 생각했습니다. 비슷한 것이 있습니까? 가능할까요?

다른 방법이 있습니까?

답변

3

Android API 버전 21부터 마침내 응용 프로그램이 게임인지 확인하는 방법이 있습니다.

PackageManager pm = mContext.getPackageManager(); 
ApplicationInfo ai = pm.getApplicationInfo(mPackageName,0); 
if((ai.flags & ApplicationInfo.FLAG_IS_GAME) == ApplicationInfo.FLAG_IS_GAME) 
    return true; 
return false; 
+0

게임에이 플래그가 설정 될 필요는 없습니다. – CommonsWare

+0

그러나 개발자가이 플래그를 자신의 애플리케이션 매니페스트에 넣는 데는 여러 가지 이유가 있습니다. 그 중 하나는 게임 스토어 및 Android tv 런처에서 적절한 색인 생성입니다. – Vektor88

3

앱이 게임인지 여부를 자동으로 감지 할 수있는 방법은 없습니다. 패키지 이름의 공통 부분의 패키지 이름을 사용하면됩니다. 내 솔루션은 Google 스토어 페이지의 색인을 생성하고 패키지 이름을 해시하는 것입니다.

공통 접두어를 작성하여 내 해시를 최적화 할 수 있습니다. 패키지 이름을 도메인으로 처리하고 공용 접미어를 grep합니다. http://publicsuffix.org/의 목록을 사용합니다.

"공용 접미사"는 인터넷 사용자가 직접 이름을 등록 할 수있는 이름입니다. 공개 접미어의 예는 .com, .co.uk 및 pvt.k12.ma.us입니다. Public Suffix List는 알려진 모든 공개 접미사의 목록입니다.

공용 접미어 목록은 Mozilla의 주도이지만 커뮤니티 리소스로 유지 관리됩니다. 이 소프트웨어는 모든 소프트웨어에서 사용할 수 있지만 원래는 브라우저 제조업체의 요구를 충족시키기 위해 만들어졌습니다.

이 목록을 사용하면 packagename의 일부가 일반적인 접두사임을 감지 할 수 있습니다.

+0

왜 downvote입니까? 이것은 나의 해결책이고 이것은 나를 위해 일한다. – rekire

+0

그것은 내 것이 아니며, 작동한다면 더 많은 방향에 관심이있을 것입니다. – Vektor88

+0

하지만 그렇게하기 위해 나는 가장 중요한 게임 회사의 목록을 먼저 가지고 있어야합니다. 응용 프로그램의 플레이 스토어 페이지에서 카테고리 정보를 얻는 것이 낫지 않습니까? – Vektor88

관련 문제