मैं जीसीएम अधिसूचना आइटम साझा करना चाहता हूं। शेयर बटन क्लिक घटनाओं का जवाब दे रहा है और आइटम भी साझा किया जाता है। यहां केवल समस्या है, अधिसूचना चयनकर्ता के नीचे इरादा चयनकर्ता संवाद मौजूद है। उपयोगकर्ता को स्टेटस बार मैन्युअल रूप से बंद करना होगा और फिर साझा करने के लिए ऐप का चयन करना होगा। मैं स्टेटस बार प्रोग्रामेटिक रूप से बंद करना चाहता हूं, ताकि जब उपयोगकर्ता शेयर पर क्लिक करता है, तो यह सीधे उसे ऐप्स चुनने के लिए संवाद दिखाता है।अधिसूचना ट्रे को प्रोग्रामेटिक रूप से बंद करने के लिए कैसे करें
मुझे पता चला कि 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
सेवा या किसी अन्य विकल्प का उपयोग करने का कोई तरीका है?
अद्यतन:
मैं कोड के सिर्फ 2 लाइनों के साथ ऊपर समस्या हल हो जाती। STATUS_BAR_SERVICE को कॉल करने की कोई आवश्यकता नहीं है।
Intent it = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
mContext.sendBroadcast(it);
इस आशय स्वचालित रूप से अधिसूचना
ऊपर कोशिश कर सकते हैं मैं इस मुद्दे को हल किया। समाधान –
के लिए अद्यतन की जांच करें, आप अपने अपडेट पर भरोसा नहीं कर सकते। वास्तविक सिस्टम स्तर संवाद कब होता है तो क्या होता है? मेरे पास एक सिस्टम स्तरीय संवाद खुला था और इसे बंद कर दिया। –