GCM bildirim öğesini paylaşmak istiyorum. Paylaşım düğmesi tıklama etkinliklerine yanıt veriyor ve öğe de paylaşılıyor. Tek sorun burada, bildirim tepsisinin altında Niyet seçicisi iletişim kutusu var. Kullanıcı, durum çubuğunu el ile kapatmalı ve ardından paylaşım için uygulamayı seçmelidir. Durum çubuğunu program aracılığıyla kapatmak istiyorum, böylece kullanıcı paylaşmayı tıklattığında, doğrudan uygulamaları seçmek için ona iletişim kutusunu gösterir.Bildirim tepsisini programlama aracılığıyla kapatma
Hizmetin açılması/kapatılması için status bar
hizmetinin kullanılabileceğini buldum. Ancak sistem uygulamaları için kısıtlanmış.
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();
}
Yukarıdaki kodu kullandım. Ama "STATUS_BAR_SERVICE çözümlenemedi" hatası alıyorum. Ve Manifestteki aşağıda permision eklendiğinde: Ben sadece bana uygulamada kullanmak izin vermiyor apps.It sistem için izin alıyorum
<uses-permission
android:name="android.permission.STATUS_BAR" />
. status bar
hizmetini veya başka bir alternatifi kullanmanın bir yolu var mı?
Güncelleme:
ben kod sadece 2 satır ile yukarıdaki sorunu çözdü. STATUS_BAR_SERVICE numaralı telefonu aramanıza gerek yoktur.
Intent it = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
mContext.sendBroadcast(it);
otomatik
yukarıda deneyebilirsiniz. Lütfen güncellemenize güvenemediğiniz –
numaralı çözüm için güncellemeyi kontrol edin. Gerçek bir sistem seviyesi diyaloğu açık olduğunda ne olur? Sistem düzeyinde bir iletişim kutusu açtım ve kapattı. –