Как показать диалог «Отправить отзыв для X»?

Задний план

Некоторые приложения Google позволяют отправлять отзывы из приложения, а не идти в магазин воспроизведения.

Например, этот (из этого приложения ):

Введите описание изображения здесь

Сравните это с оригинальным: Введите описание изображения здесь

Вопрос

Можно ли открыть этот диалог?

Если да, то как? И что на самом деле происходит, когда пользователь отправляет обратную связь? Он отправляется непосредственно на консоль разработчика? Может ли разработчик ответить на такой отзыв? Может ли диалог запросить, чтобы пользователь оставил электронное письмо? Каковы особенности этого диалога?

Если нет, что они используют? Это похоже на диалог отправки информации о сбоях. Может быть, они используют один и тот же механизм?

Причина, по которой я думаю, что это тот же механизм отправки ошибок, – это сообщение, которое я написал, но оно поддерживается только с API 14, и я не уверен в последствиях …

Да, это диалог отчета о сбое. Да, отчет отправляется на консоль разработчика. Нет, вы не можете ответить на отзыв. Да, за сообщение, на которое вы ссылаетесь, требуется API 14 и не может использоваться иначе. Диалог не может быть настроен. Лучший способ увидеть особенности диалога – открыть его, используя приложение, которое его предоставляет.

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

Я использовал этот фрагмент кода для включения отправки обратной связи и явного открытия диалога с обработанными исключениями.

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public ApplicationErrorReport createErrorReport (Exception e) { ApplicationErrorReport report = new ApplicationErrorReport (); report.packageName = report.processName = this.getPackageName (); report.time = System.currentTimeMillis (); report.type = null == e ? ApplicationErrorReport.TYPE_NONE : ApplicationErrorReport.TYPE_CRASH; report.systemApp = false; if (null != e) { ApplicationErrorReport.CrashInfo crash = new ApplicationErrorReport.CrashInfo (); crash.exceptionClassName = e.getClass ().getSimpleName (); crash.exceptionMessage = e.getMessage (); StringWriter writer = new StringWriter (); PrintWriter printer = new PrintWriter (writer); e.printStackTrace (printer); crash.stackTrace = writer.toString (); StackTraceElement stack = e.getStackTrace ()[0]; crash.throwClassName = stack.getClassName (); crash.throwFileName = stack.getFileName (); crash.throwLineNumber = stack.getLineNumber (); crash.throwMethodName = stack.getMethodName (); report.crashInfo = crash; } return report; } 
Intereting Posts
Настройка цвета панели действий и текста, когда приложение отображается в списке фоновых приложений Android Как добавить собственный XML-файл в res / values ​​и как зарегистрировать customvalues.xml с помощью системы Кордова Ионная: Включите мобильную клавиатуру Android android Как показать описание подсказки в Android Studio? Android SeekBar setOnSeekBarChangeListener Как ответить на комментарии в Android Market? Android Studio: неудачное выполнение Gradle. Причина: Сломанная труба Как я могу получить приложение в эспрессо? Декодирование полилинии с помощью нового API Карт Google Как создать собственный языковой пакет для Android? Не удалось получить требуемый масштаб в google map v2? Repo: команда не найдена в автоматическом скрипте bash для создания cyanogenmod DialogFrag # show () из фрагментации «IllegalStateException: не удается выполнить это действие после onSaveInstanceState» Фатальный сигнал без исключения Почему мобильные браузеры загружают мою страницу полностью увеличен?