Sony SmartWatch - Окно виджета

Начиная разрабатывать приложение в эти дни, я застрял, пытаясь открыть «окно» при касании экрана в виджете.

В примерах кода (sdk) мы можем видеть это в виджете событий, когда вы щелкаете по экрану, открывается «окно», и вы можете видеть там события.

Я следую коду, чтобы увидеть, как я могу это сделать:

в NotificationWidgetExtension: SmartExtensionUtils: событие onTouch

Intent intent = new Intent(Widget.Intents.WIDGET_ENTER_NEXT_LEVEL_INTENT);
sendToHostApp(intent);

В расширении виджета

protected void sendToHostApp(final Intent intent) {
    intent.putExtra(Widget.Intents.EXTRA_AEA_PACKAGE_NAME, mContext.getPackageName());
    intent.setPackage(mHostAppPackageName);
    mContext.sendBroadcast(intent, Registration.HOSTAPP_PERMISSION);
}

Пытаюсь повторить, но у меня не получается. Где-нибудь я могу прочитать об этом, или кто-то может мне помочь в этом?


person Otuyh    schedule 06.08.2013    source источник
comment
Вы работаете в эмуляции или на устройстве? Можете ли вы подтвердить, что ваш код скомпилирован правильно? Можете ли вы запустить все?   -  person Floris    schedule 06.08.2013
comment
Я использую часы. Все работает, дело в том, что я хочу узнать больше об этом открытом окне. Могу ли я открыть любой макет с этим?   -  person Otuyh    schedule 06.08.2013
comment
О, теперь я вижу, что открытое окно на самом деле является макетом расширения.   -  person Otuyh    schedule 06.08.2013


Ответы (1)


Я думаю, вы смотрите на три разных API: API виджетов, API уведомлений и API управления.

Код onTouch, на который вы ссылаетесь, является частью служебных классов SDK и поможет вам, если вы создали расширение, в котором реализованы API уведомлений и API виджетов. Когда вы находитесь в представлении Widget на часах и вы переопределили класс NotificationWidgetExtension, событие onTouch будет доставлено указанному методу. В основном он покажет первое доступное (и не прочитанное) уведомление.

Вы упомянули «окно» и т. д., и я предполагаю, что вы хотите создать приложение на SmartWatch. Это делается через Control API. Взгляните на SampleControlExtension, содержащийся в SDK. Проверьте этот ответ, чтобы получить информацию о том, как запустить расширение Control из собственного расширения. Например. если вы создаете расширение Widget+Control, вы можете запустить расширение Control в методе onTouch вашего виджета.

person Jerker    schedule 09.08.2013
comment
Эй, Джеркер, спасибо за ответ, но у меня все еще есть один вопрос. Я использую это в виджете onTouch: намерение намерения = новое намерение (Control.Intents.CONTROL_START_REQUEST_INTENT); sendToHostApp (намерение); Ладно, запускаю контроль. Как я могу узнать, что я захожу из виджета, а не нажимаю на значок расширения? - person Otuyh; 09.08.2013
comment
Привет, Хор, в настоящее время нет способа действительно отличить расширение, запускаемое виджетом, от расширения, запускаемого пользователем. Я бы предложил использовать, например. настройки вашего приложения, чтобы установить флаг в методе Widget onTouch. И когда расширение Control было запущено, установите флажок, чтобы различать две ситуации. Не идеально, но выполнимо. - person Jerker; 12.08.2013