Не удается переустановить разбитый Sony SmartWatch Control

Я надеюсь, что это не универсально, но я разрабатываю приложение для Sony SmartWatch. Когда я когда-либо совершаю ошибку, например допускаю исключение нулевого указателя. Я не могу перезапустить приложение. Как будто он остается в аварийном состоянии навсегда. Чтобы усугубить проблему, я также перестаю получать сообщения через Logcat, относящиеся к приложению. Когда я удаляю и переустанавливаю приложение, его нет в списке приложения SmartWatch на телефоне. Вроде не регистрируется. Это трудно устранить, так как на данный момент я не получаю никаких сообщений журнала. Единственное, что я могу сделать, это удалить приложение. Перезагрузите мой телефон. Затем переустановите приложение. В этот момент все возвращается к норме, и я снова могу начать писать код. Это подводит меня к моим вопросам. Есть ли лучший способ перерегистрировать элемент управления? Произойдет ли это с конечными пользователями? Если приложение выйдет из строя, его нужно будет удалить, перезагрузить и установить для восстановления?

Некоторые детали (имена изменены для защиты невиновных):

Я создал Broadcast Reciever и в своем mainfest настроил его для прослушивания этих трансляций.

  <receiver android:name=".MyExtensionReceiver" >
        <intent-filter>
             <!-- Receiver intents -->
            <action android:name="com.sonyericsson.extras.liveware.aef.registration.EXTENSION_REGISTER_REQUEST" />
            <action android:name="com.sonyericsson.extras.liveware.aef.registration.ACCESSORY_CONNECTION" />

            <!-- Control intents -->
            <action android:name="com.sonyericsson.extras.aef.control.START" />
            <action android:name="com.sonyericsson.extras.aef.control.STOP" />
            <action android:name="com.sonyericsson.extras.aef.control.PAUSE" />
            <action android:name="com.sonyericsson.extras.aef.control.RESUME" />
            <action android:name="com.sonyericsson.extras.aef.control.ERROR" />
            <action android:name="com.sonyericsson.extras.aef.control.TOUCH_EVENT" />
            <action android:name="com.sonyericsson.extras.aef.control.SWIPE_EVENT" />

        </intent-filter>

Код для MyExtensionReceiver:

 public class MyExtensionReceiver extends BroadcastReceiver {


public MyExtensionReceiver() {
    super();
    Log.d("mytag", "MyExtensionReceiver Loaded");
    Dbg.setLogTag("mytag");
}

@Override
public void onReceive(Context context, Intent intent) {
    Log.d("mytag", "onReceive: " + intent.getAction());
    intent.setClass(context, MyExtensionReceiver.class);
    context.startService(intent);
}

}

Даже если мое приложение дает сбой, я все равно должен получать сообщение журнала при вызове onReceive. Это похоже на то, что широковещательная рассылка EXTENSION_REGISTER_REQUEST никогда не отправляется. Я просто продолжаю удалять перезагрузку и переустанавливать снова и снова. В конце концов приложение находит приложение SmartConnect.


person theJosh    schedule 30.01.2013    source источник
comment
Я помню некоторые подобные проблемы. Сейчас подробностей не помню, хотя это было полгода назад.   -  person Ifor    schedule 31.01.2013


Ответы (2)


Кажется, это не имеет ничего общего с BroadcastReceiver. Без его использования у меня такая же досадная проблема. Мне нужно перезагрузить телефон, чтобы все снова заработало нормально, так как ни отключение/включение приложения немного не помогает, ни уничтожение телефонного приложения SmartWatch (поскольку я не вижу другого способа перезапустить его).

Я также был бы признателен за помощь со стороны Sony в этом вопросе.

person Eir    schedule 10.02.2013

Только что наткнулся на эту проблему, давая немного серого! Чтобы обойти эту проблему, просто создайте новое намерение с помощью строки и запустите его с контекстом.

Intent intent = new Intent("MY.PACKAGE.NAME.MyExtensionReceiver");
context.startService(intent);
person Apirak Lunla    schedule 10.10.2013