2017-02-06 12 views
17

this bug की वजह से मेरी टीम भूगर्भीकरण का उपयोग नहीं करने का निर्णय ले रही है। एंड्रॉइड में geofencing कुछ है जो प्रयोग योग्य है या नहीं?एंड्रॉइड में geofencing पूरी तरह से अनुपयोगी है?

बग रिपोर्ट से:

सभी घर में परीक्षण उपकरणों सब कुछ पर डिबग के साथ ठीक चलाता है और रिलीज बनाता है। क्रैश रिपोर्ट कि एपीआई के साथ कोई समस्या हालांकि, वहाँ बाहर कुछ उपयोगकर्ताओं के लिए हम पाते हैं:

Fatal Exception: java.lang.SecurityException: Invalid API Key for package = de.stocard.stocard .Status code received = -1 
     at android.os.Parcel.readException(Parcel.java:1620) 
     at android.os.Parcel.readException(Parcel.java:1573) 
     at com.google.android.gms.common.internal.zzu$zza$zza.zza(Unknown Source) 
     at com.google.android.gms.common.internal.zzd.zzqz(Unknown Source) 
     at com.google.android.gms.internal.zzpw$zzc.zzapl(Unknown Source) 
     at com.google.android.gms.internal.zzpw$zzf.run(Unknown Source) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
     at com.google.android.gms.internal.zzrn.run(Unknown Source) 
     at java.lang.Thread.run(Thread.java:818) 

यह 4.4.2 से कोई ध्यान देने योग्य पैटर्न के साथ 7.0 से लेकर Android संस्करण पर होता है। यह डिवाइस मॉडल और निर्माता पर लागू होता है: कई और एकाधिक निर्माता और मॉडल।

यह एक बहुत गंभीर हेइज़बग की तरह लगता है।

नई जानकारी: हम करने की आवश्यकता होगी

  1. location Geofence API

का उपयोग Awareness[.fence] API

  • का उपयोग करना:

    वहाँ एंड्रॉयड में जियोफ़ेंसिंग करने के लिए 2 अलग अलग तरीकों से हो रहा है सुविधाओं और बैटरी-मित्रता की इच्छा रखने के लिए जागरूकता एपीआई का उपयोग करें।

    नोट:

    मैं "मुख्य रूप से राय-आधारित" की वजह से 1 पास वोट देखते हैं। तो, मुझे स्पष्ट होना चाहिए, मैं असमर्थित राय जवाब नहीं चाहता हूं। मुझे तथ्यों, संदर्भ, या विशिष्ट विशेषज्ञता चाहिए। मेरे पास किया गया शोध और संदर्भित एक यादृच्छिक क्रैश बग के आसपास कोई भरोसेमंद काम नहीं है। मैं ध्यान दें कि वे सफलतापूर्वक जियोफ़ेंसिंग कार्यान्वित कर देते हैं और दूसरों को चाहते हैं या तो:

    1. सबूत है कि उनके ऐप्स इस बग (अच्छा क्रैश रिपोर्टिंग कि कभी नहीं पकड़ा गया Invalid API Key for package)
    2. इस बग को देखा है और सफलतापूर्वक कभी नहीं का सामना करना पड़ा यह एक ठीक
    3. कभी इस बग
  • +1

    क्या आपने जागरूकता एपीआई का उपयोग कर सीधे Google बनाम जीओफेनसिंग एपीआई का उपयोग करने की कोशिश की है? –

    +0

    मैंने नहीं किया है। मैंने अपने आवेदन में एक सुविधा के लिए एंड्रॉइड जियोफेनसिंग का उपयोग करने का सुझाव दिया। एक और डेवलपर वापस आया, "मैंने कोशिश की कि एक और कंपनी में और यह टूटा हुआ है; यहां बग टिकट है।" तो अब मैं किसी भी डेवलपर्स से फीडबैक प्राप्त करने की कोशिश कर रहा हूं, जिसके पास सबूत हो सकते हैं कि एंड्रॉइड में जियोफेन्सिंग आज किया जा सकता है। –

    +0

    मैंने जागरूकता एपीआई का उपयोग नहीं किया है, इसलिए मैं यह नहीं कह सकता कि यह कितना अच्छा या बुरी तरह काम करता है। हालांकि, मैंने Geofencing API का उपयोग करके खर्च किए गए दो वर्षों में इस बग को नहीं देखा है। मैं कहूंगा कि जियोफेनसिंग एपीआई के पास सटीकता, समय, झूठी घटनाओं और उपलब्धता के संबंध में समस्याओं का अपना सेट है, लेकिन यह बग केवल जागरूकता एपीआई से संबंधित प्रतीत होता है। –

    उत्तर

    1

    बग आप लिंक किए गए पहले से ही सभी जानकारी निहित देखा लागू किया, क्यों किया?

    हमारे चेक में एक बग है जो कभी-कभी इस सुरक्षा अपवाद को फेंकता है जब प्रमाणीकरण के लिए नेटवर्क त्रुटि होती है। फिक्स Google Play सेवाओं के अगले संस्करण में रोलआउट होगा।

    अभी के लिए, सबसे अच्छा वर्कअराउंड उस थ्रेड पर एक UncaughtExceptionHandler स्थापित किया जाएगा जिसे आप GoogleApiClient.connect() कहते हैं। अधिकांश लोगों के लिए, यह मुख्य धागे पर होगा, जिसे आप Looper.myLooper() के माध्यम से प्राप्त कर सकते हैं। GetThread()।

    अद्यतन

    खैर, अपने प्रश्न "एंड्रॉयड में पूरी तरह से व्यर्थ जियोफ़ेंसिंग है?" जवाब देने के लिए, मैं कहेंगे नहीं, यह "पूरी तरह से" व्यर्थ नहीं है, लेकिन स्पष्ट रूप से कुछ मुद्दों में शामिल है।

    क्या आप इन बगों के कारण भूगर्भीकरण का उपयोग नहीं करना चाहिए? मुझे लगता है कि उपयोग के मामले पर भारी निर्भर करता है और वास्तव में एक राय आधारित सवाल है। हमेशा मोबाइल उपकरणों के साथ, यदि कुछ काम करता है तो आप 100% निश्चित नहीं हो सकते हैं। आपके मोबाइल में कोई सिग्नल नहीं हो सकता है और यहां तक ​​कि अगर कोड में कोई बग नहीं है तो भी इसे कई कारणों से किसी निश्चित स्थान के बारे में अधिसूचित नहीं किया जा सकता है। मोबाइल पर यह सब कुछ है कि आप त्रुटियों से कैसे निपटते हैं।

    मैं जो कुछ भी कार्यान्वित करना चाहता हूं उसे लागू करता हूं, त्रुटि को पकड़ने और ऐप में एनालिटिक्स/क्रैश रिपोर्ट को कार्यान्वित करने के लिए बग टिकट (UncaughtExceptionHandler) में सुझाए गए सुझावों को करने का प्रयास करें ताकि आपको कम से कम जानकारी मिल सके क्षेत्र में वास्तव में यह वास्तव में कितनी बार होता है।

    अपने उपयोगकर्ताओं को यह स्पष्ट करें कि 100% गारंटी नहीं है कि आपके ऐप की भू-सुविधा सुविधा अंतर्निहित प्रणाली के कारण हर समय काम करती है और मुझे लगता है कि वे अभी भी सुविधा प्राप्त करने में प्रसन्न होंगे। शायद आपके ऐप में या आपके होमपेज पर कुछ एफएक्यू पूछे जाने वाले प्रश्न हैं जो ज्ञात मुद्दों को संबोधित करते हैं। उम्मीद है कि यह आपको एक निर्णय लेने में मदद करता है

    +0

    धागे में कई अन्य टिप्पणियां हैं जो इंगित करती हैं कि सुझाव इस मुद्दे को हल नहीं कर रहा है। इसके अलावा, इस प्रश्न के 18 दिन बाद, Google [एक अपडेट जारी किया गया] (https://code.google.com/p/android/issues/detail?id=223751#c19) जो समस्या को ठीक करना चाहिए। हालांकि, हाल ही में कल के रूप में उस धागे पर टिप्पणियां हैं जो कहती हैं कि वे अभी भी इसे देख रहे हैं। –

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