我想在用戶更改小部件設置時更新SmartWatch小部件。 我知道這可以通過發送WIDGET_IMAGE_UPDATE_INTEN
意圖完成,但似乎我沒有主機應用程序包名稱(即com.sonyericsson.extras.smartwatch)的信息。Sony SmartWatch - 如何獲取主機應用程序包名稱
如何獲得「主機應用程序包名稱」? PS:目前,我硬連線我的代碼中的「com.sonyericsson.extras.smartwatch」名稱。
我想在用戶更改小部件設置時更新SmartWatch小部件。 我知道這可以通過發送WIDGET_IMAGE_UPDATE_INTEN
意圖完成,但似乎我沒有主機應用程序包名稱(即com.sonyericsson.extras.smartwatch)的信息。Sony SmartWatch - 如何獲取主機應用程序包名稱
如何獲得「主機應用程序包名稱」? PS:目前,我硬連線我的代碼中的「com.sonyericsson.extras.smartwatch」名稱。
每次您的小部件擴展程序收到主機應用程序的意圖時,主機應用程序的程序包名稱都將作爲附加意圖包含在內。
String hostAppPackageName = intent.getStringExtra(Widget.Intents.EXTRA_AHA_PACKAGE_NAME);
您可以存儲包名,以便以後在代碼中使用。這也是如何在SDK的實用工具類中完成的,即它在抽象類ExtensionService中存儲爲全局變量,由SDK中的所有示例擴展使用。
看一看的SDK工具類here
在CONFIGURATION_ACTIVITY PreferenceActivity(由LiveManager> Applications> my_app> Settings調用)中,我想在用戶更改設置時更新SmartWatch小部件。我嘗試調用getIntent()。getStringExtra(Widget.Intents.EXTRA_AHA_PACKAGE_NAME),但只返回NULL。 –
小部件第一次從主機應用程序獲取意圖時,例如當它被創建時,您可以存儲主機包名稱。可以將其存儲爲全局變量,也可以將其存儲在共享首選項中。如果您將其存儲在共享首選項中,則可以在要刷新小部件時通過PreferenceActivity訪問它。否則,你可以在pref.activity和你的ExtensionService之間做一些奇特的交互。 – Jerker
我不能編輯你的問題是由於另一個掛起的編輯。如果我理解正確,我建議您添加'smartwatch'標籤,因爲索尼正在監控SmartWatch技術支持。 – CommonsWare