Я хочу поделиться элементом уведомления GCM. Кнопка совместного доступа отвечает на события кликов, а элемент получает общий доступ. Только проблема здесь, диалог выбора намерений присутствует ниже лотка уведомлений. Пользователь должен вручную закрыть строку состояния, а затем выбрать приложение для совместного использования. Я хочу закрыть панель состояния программно, так что, когда пользователь нажимает на общий доступ, он прямо показывает ему диалог для выбора приложений.Как программно закрыть лоток уведомлений
Я нашел, что услуга status bar
может быть использована для открытия/закрытия услуги. Но он ограничен для системных приложений.
private void closeNotificationTray() {
Object service = mContext.getSystemService(Context.STATUS_BAR_SERVICE);
Method collapse;
try {
Class<?> statusBarMngr = Class.forName("android.app.StatusBarManager");
if (Build.VERSION.SDK_INT >= 17)
collapse = statusBarMngr.getMethod("collapsePanels");
else
collapse = statusBarMngr.getMethod("collapse");
collapse.invoke(service);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
Я использовал вышеуказанный код. Но я получаю сообщение «STATUS_BAR_SERVICE не может быть разрешено». И когда я добавил ниже permision в манифесте:
<uses-permission
android:name="android.permission.STATUS_BAR" />
Я получаю, допустима только для системы apps.It не позволяет мне использовать в своем приложении. Есть ли способ использовать услугу status bar
или любую другую альтернативу?
Update:
Я решил выше вопрос только с 2 строк кода. Нет необходимости вызывать STATUS_BAR_SERVICE.
Intent it = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
mContext.sendBroadcast(it);
Вызов этого намерения будет автоматически закрывает уведомление о
Я решил эту проблему. Проверьте обновление для решения –
, на которое вы не можете положиться. что происходит, когда открывается диалоговое окно реального уровня системы? У меня был диалог уровня системы, и он закрыл его. –