2016-03-29 11 views
14

पर सिस्टम कैश हटाएं मैं सभी 0 स्थापित अनुप्रयोगों के सिस्टम कैश को हटाने के लिए freeStorageAndNotify() विधि android.permission.CLEAR_APP_CACHE के साथ विधि का उपयोग कर रहा हूं। लेकिन विधि ने एंड्रॉइड मार्शमलो 6.0 संस्करण से InvocationTargetException फेंकना शुरू कर दिया। मुद्दों को हल करने के बाद मुझे पता चला कि एक ही समस्या यहां दी गई है: Android M reflection method freeStorageAndNotify exception तो यहां निष्कर्ष निकाला गया था, freeStorageAndNotify() ने काम करना बंद कर दिया क्योंकि Google ने अब हस्ताक्षर के लिए विधि के हस्ताक्षर स्तर को उठाया है। सिस्टम।एंड्रॉइड 6.0

लेकिन अब सवाल यह है कि कैसे 'क्लीन मास्टर' जैसे अन्य तृतीय पक्ष ऐप्स अभी भी 6.0 डिवाइसों के लिए उपयोगकर्ता से अभिगम्यता अनुमति ले कर सभी स्थापित अनुप्रयोगों के सिस्टम कैश को हटाने में सक्षम हैं?

+0

स्वच्छ मास्टर ऐप अभिगम्यता अनुमतियों का उपयोग नहीं करता है। –

+0

क्या आपने एपीके में [peeking] (http://www.decompileandroid.com/) की कोशिश की है? – kichik

+0

क्या आपने सीधे कैश फ़ोल्डर को हटाने की कोशिश की है? (शायद आपको पढ़ने/लिखने के भंडारण पहुंच की अनुमति की आवश्यकता है, लेकिन मुझे यकीन नहीं है कि आप इसे कर सकते हैं) –

उत्तर

0

सिस्टम क्लीनर जिसका उपयोग मैं कर रहा हूं, स्टोरेज अनुमतियों तक पहुंच है। यह अनुमति ऐप प्राधिकरण को साझा बाहरी संग्रहण निर्देशिका में किसी भी डेटा को साफ़ करने देती है।

http://developer.android.com/reference/android/Manifest.permission_group.html#STORAGE

मुझे नहीं लगता कि किसी भी 3 पार्टी अनुप्रयोग वास्तव में स्पष्ट सिस्टम कैश अब और जब तक डिवाइस निहित है और एप्लिकेशन को रूट किए गए उपकरणों के लिए डिज़ाइन किया गया है सकते हैं।

clean Master permission

clean Master asking for permission

+0

मुझे पता है कि। मेरा सवाल यह है कि कैसे "क्लीन मास्टर" ऐप उपयोगकर्ता से अभिगम्यता अनुमति ले कर ऐसा कर सकता है। – Audumbar

+0

स्वच्छ मास्टर केवल स्टोरेज अनुमति लेता है। –

+0

क्लीन मास्टर स्पष्ट रूप से स्टोरेज PERMISSION –

-4

उन एप्लिकेशन को केवल एक ही बात हर समय करते हैं। इसे पुराने डिवाइस पर इस्तेमाल करें और एक नया डिवाइस परिणाम समान हैं। मैंने जो एकमात्र मदद देखी है वह यह है कि वे कैश को साफ न करने के लिए कुछ पृष्ठभूमि प्रक्रियाओं को मार या पुनरारंभ कर सकते हैं। इसलिए कोई एपीआई अपनी चाल को सीमित नहीं कर सकता ..

0

मुझे नहीं लगता कि 'क्लीन मास्टर' वास्तव में इंस्टॉल किए गए ऐप्स कैश को साफ़ करने के लिए एक्सेसिबिलिटी अनुमतियों का उपयोग करता है। लेकिन, यदि आप रुचि रखते हैं, तो यह लक्ष्य आपके आवेदन में AccessibilityService का उपयोग कर हासिल किया जा सकता है। अपने वर्ग फैली कि AccessibilityService आप इस कॉलबैक है के भीतर:

@Override 
    public void onAccessibilityEvent(AccessibilityEvent aEvent) { 
     AccessibilityNodeInfo rootNode = aEvent.getSource(); 
     //... 
    } 

यहाँ आप आह्वान कर सकते हैं rootNode.findAccessibilityNodeInfosByViewId() या rootNode.findAccessibilityNodeInfosByText(), यह पेड़ में सभी मिलान AccessibilityNodeInfo वस्तुओं (उप नोड्स) वापस आ जाएगी। फिर, आपको बस यह पता लगाने की आवश्यकता है कि उनमें से कौन सा Button (node.getClassName()) है और subNode.performAction(AccessibilityNodeInfo.ACTION_CLICK) पर कॉल करें।

एंड्रॉइड एम पर, आपको पहले कंक्रीट ऐप के लिए सिस्टम की App Info स्क्रीन (आप यहां How can I start android application info screen programmatically?) निर्देशों को खोलने की आवश्यकता है, और ऊपर वर्णित योजना द्वारा, "स्टोरेज" बटन पर अनुक्रमिक क्लिक करें -> "साफ़ करें कैश "।

सभी स्थापित ऐप्स के लिए कैश साफ़ करने के लिए आपको शायद सभी इंस्टॉल किए गए ऐप्स (List<ApplicationInfo> installedApplications = context.getPackageManager.getInstalledApplications(0);) के माध्यम से फिर से शुरू करना होगा और ऊपर उल्लिखित प्रक्रिया दोहराएं।

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