2012-06-03 4 views
1

사용자가 위젯 설정을 변경할 때마다 SmartWatch 위젯을 업데이트하고 싶습니다. WIDGET_IMAGE_UPDATE_INTEN 의도를 보내면 해결할 수 있지만 호스트 앱 패키지 이름 (예 : com.sonyericsson.extras.smartwatch) 정보가없는 것으로 보입니다.Sony SmartWatch - 호스트 앱 패키지 이름을 얻는 방법

"호스트 앱 패키지 이름"을 얻으려면 어떻게해야합니까?

추신 : 현재 코드에서 "com.sonyericsson.extras.smartwatch"라는 이름을 하드 와이어했습니다.

+1

내가 질문을 편집 할 수 없습니다를 살펴 보자. SmartWatch 기술 지원을 위해 소니가 제대로 이해하고 있다면 'smartwatch' 태그를 추가하는 것이 좋습니다. – CommonsWare

답변

3

위젯 확장이 호스트 응용 프로그램에서 인 텐트를 수신 할 때마다 호스트 응용 프로그램의 패키지 이름이 인 텐트에 추가로 포함됩니다.

String hostAppPackageName = intent.getStringExtra(Widget.Intents.EXTRA_AHA_PACKAGE_NAME); 

나중에 코드에 사용할 수 있도록 패키지 이름을 저장할 수 있습니다. 이것은 또한 SDK의 유틸리티 클래스에서 수행되는 방법이기도합니다. 즉, SDK의 모든 샘플 확장에 사용되는 ExtensionService 추상 클래스에 전역 변수로 저장됩니다.

인해 다른 대기중인 편집에 SDK 유틸리티 클래스 here

+0

CONFIGURATION_ACTIVITY PreferenceActivity (LiveManager> 응용 프로그램> my_app> 설정으로 호출)에서 사용자가 설정을 변경할 때마다 SmartWatch 위젯을 업데이트하고 싶습니다. getIntent(). getStringExtra (Widget.Intents.EXTRA_AHA_PACKAGE_NAME)를 호출하려고하지만 NULL 만 반환됩니다. –

+1

위젯이 처음으로 호스트 응용 프로그램에서 인 텐트를 가져올 때. 생성 될 때 호스트 패키지 이름을 저장할 수 있습니다. 전역 변수로 저장하거나 공유 환경 설정에 저장할 수 있습니다. 공유 환경 설정에 저장하면 위젯을 새로 고칠 때 PreferenceActivity에서 액세스 할 수 있습니다. 그렇지 않으면 pref.activity와 ExtensionService 사이에 멋진 상호 통신을 할 수 있습니다. – Jerker

관련 문제