Приложение Android аварийно завершает работу при вызове любого явного намерения (например, камера/галерея, вызов или обмен) на Samsung Galaxy S3

У меня есть compileSdkVersion и targetSdkVersion 23, и я тестирую их на Samsung Galaxy S3. Но всякий раз, когда я открываю какое-либо стороннее приложение (явное намерение), например, приложение камеры/галереи или намерение поделиться (gmail, электронная почта) или приложение для набора номера, и возвращаюсь в свое приложение, нажимая кнопку «Назад» или (в случае приложения камеры/галереи, выбирая изображение) . Приложение перезапускается из MainAcitivty (возможно, оно дает сбой, но в logcat не отображается никаких исключений). Вот как я открываю намерения:

Позвонить/Набрать:

Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:" + phone));
context.startActivity(callIntent);

Галерея:

Intent intent = new Intent(Intent.ACTION_PICK,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, GALLERY_PIC_REQUEST);

Делиться:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
context.startActivity(Intent.createChooser(intent, dialogHeaderText));

Эта проблема возникает только в Samsung s3. Я проверил все вышеперечисленные функции на Google Nexus 5, Huawei Honor 4C и Samsung Galaxy S5, все работает нормально. Любая помощь?


person Nouman Bhatti    schedule 14.04.2016    source источник
comment
Вы внедрили новые разрешения для Android 6 (sdk 23)? Вы также проверили, чтобы устройство могло обработать намерение?   -  person zgc7009    schedule 14.04.2016
comment
На каком sdk работает galaxy s3?? а также можете ли вы предоставить стек ошибок из журнала   -  person Rafael Lucena    schedule 14.04.2016
comment
@ zgc7009 Zgc7009 Я думаю, что нет необходимости добавлять новые разрешения при вызове намерения. Если это вопрос новых разрешений, он не должен работать на Nexus 5 (marshmallow 6.0), но на нем он работает нормально. Не понял ваш второй вопрос, как проверить, может ли устройство обрабатывать намерения?   -  person Nouman Bhatti    schedule 15.04.2016
comment
@RafaelLucena galaxy s3 работает под управлением kitkat 4.4, и нет стека ошибок или каких-либо исключений, он просто запускает MainActivity.   -  person Nouman Bhatti    schedule 15.04.2016


Ответы (1)


Каждое упомянутое намерение должно иметь механизм обратного вызова, это действительно странно в случае с Samsung S3, когда мне приходится с этим сталкиваться. Я много искал, но ничего не нашел.

Каким-то образом я увидел параметр в Параметры разработчика под названием Не сохранять действия, который уничтожает все действия пользователя как можно скорее, когда установлен флажок. Убедитесь, что он не отмечен.

Я исправил это для Samsung S3 с Android версии 4.3 и обнаружил, что эта опция работает на многих устройствах и версиях ОС Android

Пожалуйста, выполните следующие действия:

Android версии 4.3 (Samsung Galaxy S3):

  1. Перейдите в Настройки >> Еще (вкладка) >> Параметры разработчика >> Не сохранять действия.
  2. Убедитесь, что эта опция не отмечена.

Общий:

  1. Перейдите в Настройки >> Параметры разработчика >> Не сохранять действия.
  2. Убедитесь, что эта опция не отмечена.

Надеюсь, это сработает :)

person Hassan Jamil    schedule 15.04.2016
comment
Вы должны включить это для начала, поэтому будьте осторожны с тем, что вы делаете как разработчик со своими устройствами. На самом деле, я считаю, что параметры разработчика даже скрыты по умолчанию. - person zgc7009; 15.04.2016
comment
Да, для обычного пользователя эта опция скрыта по умолчанию, только разработчики могут столкнуться с этой проблемой при включении вручную, в противном случае она по умолчанию отключена для параметров разработчика. - person Hassan Jamil; 18.04.2016