6

में सैमसंग उपकरणों पर काम नहीं कर रहा है। मैं एक ऐप विकसित करता हूं जो अलार्ममेनगर का उपयोग एक गुच्छा अलार्म (आमतौर पर लगभग 50) सेट करने के लिए करता है जिसे वर्ष के दौरान निश्चित समय पर निकाल दिया जाना चाहिए। यह वह कोड है जिसका उपयोग मैं कर रहा हूं क्योंकि 4.4 किटकैट ने अलार्ममेनगर को बदल दिया है।अलार्ममेनर लॉलीपॉप

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 
long setDate = fireDate.getTime(); // it's a calendar date defined above 
Intent intent = new Intent(LOCAL_DISPLAY_MESSAGE_ACTION); 
PendingIntent pending = PendingIntent.getBroadcast(ctx, 
          id, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

if (Build.VERSION.RELEASE.startsWith("6")) { 
    am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, setDate, pending); 
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ 
    am.setExact(AlarmManager.RTC_WAKEUP, setDate, pending); 
} else { 
    am.set(AlarmManager.RTC_WAKEUP, setDate, pending); 
} 

ऊपर दिए गए कोड के अलावा मैं मैनिफेस्ट में परिभाषित प्रसारण रिसीवर का उपयोग कर रहा हूं।

public class LocalReceiver extends BroadcastReceiver { 

    public void onReceive(Context context, Intent intent) { 
     PushWakeLocker.acquire(context); 

     // do some stuff 

     PushWakeLocker.release(); 
    } 
} 

अधिक जानकारी थाई मदद कर सकता है।

<uses-sdk 
    android:minSdkVersion="10" 
    android:targetSdkVersion="19" /> 

कुछ महीने पहले मैं केवल यह है कि सभी पर उनके स्थानीय सूचनाएं नहीं मिलता है सैमसंग उपकरणों (5.0 /5.1 एंड्रॉयड संस्करण) से बुरा समीक्षा हो रही किया गया है के बाद से। मेरा मतलब है, यह अलार्म को फायर नहीं कर रहा है, ऐसा लगता है कि डिवाइस इसे छोड़ देता है या जागता नहीं है।

परीक्षणों में, मुख्य रूप से सैमसंग एस 4 के साथ 5.0.1 के साथ, मुझे हमेशा समय पर अलार्म मिलता है, इसलिए यह मुझे पागल कर रहा है। एफवाईआई इस कोड ने हमेशा बहुत अच्छा काम किया है।

मैंने इसके बारे में बहुत कुछ शोध किया लेकिन दुर्भाग्य से मुझे कोई उपयोगी जानकारी नहीं मिली। ऐसा नहीं है कि वे देरी के साथ अलार्म प्राप्त करते हैं (जैसा कि मैंने कुछ धागे में पढ़ा है), यह है कि वे इसे बिल्कुल नहीं प्राप्त करते हैं। तो यह लॉलीपॉप और अलार्ममेनगर में ज्ञात मुद्दे के बारे में नहीं है।

मैं आपके समय की सराहना करता हूं और किसी भी सुझाव का स्वागत है!

+0

"यह वह कोड है जिसका मैं उपयोग कर रहा हूं" - मैं 'Build.VERSION_CODES.M'' जांचने के लिए अपना 'if' बदल दूंगा। "मैं एक प्रसारण रिसीवर का उपयोग कर रहा हूं" - आपका 'वेक लॉक' अनावश्यक है, क्योंकि 'अलार्ममैनगर' द्वारा ट्रिगर किए जाने पर सिस्टम पर आपूर्ति किए गए 'वेक लॉक' में 'ऑनसेसिव()' कहा जाता है। हालांकि, जब तक कि "कुछ सामान न करें" केवल कुछ मिलीसेकंड हैं, आपको उस तर्क को 'इंटेंट सेवा' में ले जाना चाहिए और 'वेकफुल ब्रॉडकास्ट रिसीवर' का उपयोग करना चाहिए। इसके अलावा, सैमसंग (जैसे सोनी और अन्य) के पास अपना स्वयं का डोज़ मोड सेटअप प्री-6.0 है, इसलिए 'अलार्ममेनगर' अविश्वसनीय है जब तक कि आप कुछ डिवाइस-विशिष्ट श्वेतसूची में शामिल नहीं हो जाते। – CommonsWare

उत्तर

9

आपकी समस्या (या दुःस्वप्न) Samsung Smart Manager है। यह ऐप 2015 से सभी सैमसंग फोन के साथ पूर्व-स्थापित है और अप्रयुक्त हैं जो ऐप्स को निष्क्रिय करने के लिए माना जाता है। "यह कैसे पता चलता है कि कौन से ऐप्स का उपयोग नहीं किया जाता है?" आप पूछ सकते हैं - सरल:

प्रत्येक ऐप जिसे उपयोगकर्ता द्वारा 3 दिनों के लिए लॉन्च नहीं किया गया है, निष्क्रिय हो जाता है।

सभी शेष अलार्म प्रबंधक प्रविष्टियां - निश्चित रूप से - हटा भी दी जाती हैं। आप इसके बारे में अपने "डेवलपर मंच" पर पढ़ सकते हैं। here या here का पालन करने के लिए स्वतंत्र महसूस करें जब तक कि इन धागे कर्मचारियों द्वारा हटाए जाएं। मुझे अभी तक सैमसंग से किसी को इस विषय का जवाब नहीं मिला है।

यह "ठीक करने" का एकमात्र तरीका है स्थिति के बारे में अपने ऐप के उपयोगकर्ताओं को सूचित करना और उन्हें स्मार्ट प्रबंधक में अपने ऐप को श्वेतसूची में कैसे दिखाना है। हमें अपने उपयोगकर्ताओं के लिए यह कैसे करना है यह दिखाते हुए चरण-दर-चरण निर्देशों के साथ एक वेबसाइट सेट अप करना पड़ा है।

आप पृष्ठभूमि सेवा स्थापित करने या हर छह घंटे या तो अलार्ममेनगर को कॉल करने के बारे में सोच सकते हैं - इनमें से कोई भी हैक काम नहीं करेगा।

+2

मेरे साथ अपनी खोज साझा करने के लिए धन्यवाद! आपने मेरा दिन बचाया यह वास्तव में कष्टप्रद है कि सैमसंग ऐसी चीज करता है और इसके बारे में कोई ज़िम्मेदारी नहीं लेता है। smh। –

+2

अद्यतन: यदि आपके पैकेज नाम में "अलर्ट" या "अलार्म" है, तो स्मार्ट प्रबंधक ऐप को निष्क्रिय नहीं करेगा। यहां अधिक: http: // stackoverflow।कॉम/ए/34085645/128092 – saibotd

+0

क्या आप जानते हैं कि अलार्ममेनगर के बजाय जॉबशेड्यूलर का उपयोग इस मामले में मदद करता है? – jakk

संबंधित मुद्दे