2011-09-16 9 views
19

मैं पुश अधिसूचनाओं पर काम कर रहा हूं और मैं इसे कार्यान्वित करने में सक्षम हूं और इसे स्टेटस बार पर प्रदर्शित कर रहा हूं, मुझे जिस समस्या का सामना करना पड़ रहा है वह यह है कि मैं इसे प्रदर्शित करना चाहता हूं भले ही फोन लॉक हो , लॉक स्क्रीन के तहत जहां यह कहता है ("अनलॉक करने के लिए खींचें"), मैंने इस तरह की सूचनाएं देखी हैं लेकिन उस पर कोई उदाहरण नहीं मिला है।एंड्रॉइड स्क्रीन पर अधिसूचना कैसे दिखाएं

उदाहरण: बस जब आपको मिस्ड कॉल प्राप्त हुआ, तो यह आपकी स्क्रीन पर लॉक बटन के नीचे दिखाएगा।

कोड:

String ns = Context.NOTIFICATION_SERVICE; 
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); 
int icon = R.drawable.icon_launcher; 
CharSequence tickerText = "MyApplication"; 
long when = System.currentTimeMillis(); 
Notification notification = new Notification(icon, tickerText, when); 
notification.defaults |= Notification.DEFAULT_SOUND|Notification.DEFAULT_VIBRATE|Notification.DEFAULT_LIGHTS;; 
CharSequence contentTitle = this.title; 
CharSequence contentText = this.message; 
Intent notificationIntent = new Intent(this, MainActivity.class); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 
mNotificationManager.notify(NOTICE_ID, notification); 
+2

असंबंधित जनता के लिए दृश्यता रखना सुनिश्चित करें, आप आवश्यक रूप के रूप में स्थानीय चर – CrackerJack9

+2

यह संभव नहीं है अभी सब कुछ को बचाने के लिए की जरूरत नहीं है। –

+0

@ कोपा क्या मतलब है? आपका संदर्भ क्या है?मेरे पास कई ऐप्स हैं जो ओपी के तरीके में सूचनाएं प्रदर्शित करते हैं (अधिसूचना बार, स्क्रीन लॉक होने पर)। – CrackerJack9

उत्तर

3

आप एक ध्वज के साथ alertdialog बनाने की कोशिश की? Flag_show_when_locked चाल चलाना चाहिए। कृपया इस धागे का संदर्भ लें, आपको यहां एक और विस्तृत उत्तर मिलना चाहिए। Android Lock Screen Widget

11

बंद कर दिया स्क्रीन पर NotificationCompat.Builder

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
      .setSmallIcon(R.drawable.ic_launcher) // notification icon 
      .setContentTitle("Notification!") // title for notification 
      .setContentText("Hello word") // message for notification 
      .setAutoCancel(true); // clear notification after click 
Intent intent = new Intent(this, MainActivity.class); 
PendingIntent pi = PendingIntent.getActivity(this,0,intent,Intent.FLAG_ACTIVITY_NEW_TASK); 
mBuilder.setContentIntent(pi); 
NotificationManager mNotificationManager = 
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
mNotificationManager.notify(0, mBuilder.build()); 

पुश अधिसूचना का उपयोग कर अधिसूचना बनाएं http://www.hongkiat.com/blog/android-lock-screen-notifications/

+3

यह वास्तव में डिवाइस की लॉक स्क्रीन पर अधिसूचना दिखाने की बात आती है तो यह मदद नहीं करेगा? –

+1

हां यह डिवाइस लॉक होने पर अधिसूचना दिखाएगा भले ही – Naruto

+2

लिंट का कहना है कि FLAG_ACTIVITY_NEW_TASK लंबित इंटेंट – auval

2

सूचनाएं आप देखा है वास्तव में एक कस्टम विजेट मेजबान लॉकस्क्रीन पर रखा विगेट्स हो सकता है।

आप के रूप में देर से 4.4.3 यहाँ के रूप में InstallWidgetReceiver के लिए एंड्रॉयड प्लेटफॉर्म स्रोत कोड को देखो, तो:

https://android.googlesource.com/platform/packages/apps/Launcher3/+/master/src/com/android/launcher3/InstallWidgetReceiver.java

आप लेखक द्वारा इस नोट देखेंगे:

/** * बाहरी ऐप्स को विगेट्स रखने की इजाजत देने के लिए हम बाद में इसे मांस कर देंगे, लेकिन अब के लिए, * हम बस कहीं और जांच के लिए कार्रवाई को बेनकाब करना चाहते हैं। */

और आप देख सकते हैं कि InstallWidgetReceiver.java वास्तव में नहीं एक ही तरह से गूगल द्वारा बाहर fleshed के रूप में InstallShortCutReceiver.java है। तो ऐसा लगता है कि कम से कम 4.4.3 तक आप देशी लॉक स्क्रीन पर विगेट्स को उसी तरह जोड़ नहीं सकते हैं, उदाहरण के लिए आप इंस्टॉलशॉर्टकूटरसीवर का उपयोग कर होमस्क्रीन पर एक शॉर्टकट जोड़ सकते हैं।

जब तक आप विजेट होस्ट के रूप में अपना स्वयं का लॉकस्क्रीन ऐप नहीं बनाते और उपयोगकर्ता मूल के बदले में स्थापित करता है तो आप विजेट का उपयोग करके भाग्य से बाहर हो सकते हैं।

एक और दृष्टिकोण यह है कि हमें केवल एक गतिविधि है जो getWindow()। AddFlags (WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED) सेट करता है;

यह आपकी गतिविधि प्रदर्शित करेगा कि स्क्रीन लॉक है या नहीं। स्क्रीन लॉक होने पर इस गतिविधि को खारिज कर लॉक स्क्रीन प्रदर्शित करेगा।

2

NotificationCompat.Builder का उपयोग कर अधिसूचना बनाएं लेकिन जैसे

NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
     builder 
     .setContentTitle("Title") 
     .setContentText("content") 
     .setSmallIcon(R.mipmap.ic_launcher) 
     .setVisibility(NotificationCompat.VISIBILITY_PUBLIC);//to show content in lock screen