2016-06-27 10 views
5

मैं एक एंड्रॉइड 6 में एक एप्लिकेशन का परीक्षण कर रहा हूं जहां मुझे DOZE पास करने की आवश्यकता है, जिसके लिए मैं उपयोगकर्ताओं से अनुरोध करना चाहता हूं कि बैटरी ऑप्टिमाइज़ेशन के इगोर को स्वीकार करें।DOZE मोड सैमसंग डिवाइस

परियोजना AntiDoze में के रूप में, लेकिन जब मैं एक आभासी डिवाइस मुझे कोई समस्या नहीं है में चलाने के लिए, लेकिन जब मैं सैमसंग के पास मैं:

FATAL EXCEPTION: main 
     Process: com.commonsware.android.antidoze, PID: 21135 
     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.commonsware.android.antidoze/com.commonsware.android.antidoze.EventDemoActivity}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS dat=package:com.commonsware.android.antidoze } 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
     at android.app.ActivityThread.access$1100(ActivityThread.java:221) 

किसी भी विचार कैसे इस समस्या को पारित करने के लिए?

कोड लिंक से महत्वपूर्ण है:

if (Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP_MR1) { 
    String pkg=getPackageName(); 
    PowerManager pm=getSystemService(PowerManager.class); 

    if (!pm.isIgnoringBatteryOptimizations(pkg)) { 
    Intent i= 
     new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS) 
     .setData(Uri.parse("package:"+pkg)); 

    startActivity(i); 
    } 
} 

प्रकट में मैं

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /> 
+0

मैंने इसे दो अलग-अलग अनुकरणकर्ताओं (एपीआई 23, 25 और 26) के साथ परीक्षण किया और मुझे एक ही अपवाद मिल रहा है। – hamalaiv

उत्तर

4

पकड़ने ActivityNotFoundException है और उपयोगकर्ता के लिए अपने स्वयं के यूआई प्रदर्शित, सेटिंग पर जाएं करने के लिए उन्हें पूछ ऐप और बैटरी ऐपलाइजेशन श्वेतसूची में अपना ऐप जोड़ें। जबकि दस्तावेज़ विशेष रूप से इस Intent कार्रवाई के लिए यह नहीं कहते हैं, Settings.ACTION_* मानों में से अधिकांश मानते हैं "कुछ मामलों में, एक मिलान गतिविधि मौजूद नहीं हो सकती है, इसलिए सुनिश्चित करें कि आप इसके खिलाफ सुरक्षा करें"।

+0

बैटरी ऑप्टिमाइज़ेशन पर जाने के लिए उपयोग करने का सबसे नज़दीकी इरादा क्या है? क्या ओएस की सेटिंग्स पर जाने की तुलना में शायद बेहतर गिरावट है? –

+0

@androiddeveloper: मुझे कोई जानकारी नहीं है, क्षमा करें। – CommonsWare

+0

ठीक उत्तर देने के लिए धन्यवाद –

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