2012-11-28 16 views
19

में मैं अपने Android प्रकट करने के लिए इस अनुमति जोड़ना चाहते हैं:अनुमति केवल, सिस्टम एप्लिकेशन को दी जाती है प्रकट

<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> 

लेकिन उसके बाद मैं अपने प्रकट में इस अनुमति पेस्ट, यह परीक्षण लाल रेखांकन और कहते हैं:

अनुमति केवल सिस्टम एप्लिकेशन को दी जाती है

मैं क्या कर सकता हूं?

+0

क्या API कॉल का उपयोग कर रहे है कि इस अनुमति की आवश्यकता है का निर्माण होता है द्वारा इस्तेमाल किया जा सकता अनुमति के चार प्रकार हैं? –

+0

@ ए - सी मैं इस ट्यूटोरियल की कोशिश कर रहा हूं। http://androidsourcecode.blogspot.in/2010/10/blocking-incoming-call-android.html –

+0

मैं देख सकता हूं कि इस ऐप को अनुमति की आवश्यकता क्यों है। हालांकि टिप्पणियों पर एक नज़र डालें, कम से कम जिंजरब्रेड पर अन्य लोगों को यह समस्या है। –

उत्तर

59

MODIFY_PHONE_STATE अनुमति प्रणाली क्षुधा केवल करने के लिए प्रदान किया जाता है:

एंड्रॉयड मुद्दों आप का पालन करने की आवश्यकता है। प्रणाली & उपयोगकर्ता

उपयोगकर्ता क्षुधा सिर्फ सभी Google के माध्यम से सामान्य एप्लिकेशन प्रतिष्ठानों Play स्टोर, अमेज़न एपस्टोर या sideloading हैं:

आपकी जानकारी के लिए, वहाँ Android एप्लिकेशन को के 2 प्रकार हैं। ये आपके एंड्रॉइड फोन के डेटा विभाजन में जाते हैं, जो उपयोगकर्ता डेटा और ऐप्स के लिए उपलब्ध आंतरिक मेमोरी का हिस्सा है।

प्रणाली क्षुधा मूल रूप से क्षुधा है कि अपने रोम के साथ पहले से इंस्टॉल हो रहे हैं। एक मानक एंड्रॉइड उपयोगकर्ता वातावरण में, उपयोगकर्ता के पास/system विभाजन के लिए लेखन पहुंच नहीं होती है और इस प्रकार, सिस्टम ऐप्स को इंस्टॉल या अनइंस्टॉल करना संभव नहीं है।

आदेश अपने Android डिवाइस पर एक प्रणाली एप्लिकेशन के रूप में एप्लिकेशन को इंस्टॉल करने में, अपने डिवाइस निहित है या तो चाहिए या एक कस्टम वसूली स्थापित (या दोनों) की है।

कहा जा रहा है कि त्रुटि वास्तव में गलत है क्योंकि आपके पास वैध कोड है और संकलन कार्य करना चाहिए। यह बेहतर होगा अगर उसने इसके बजाय चेतावनी दी हो। ग्रहण में आप आसानी से इसे ठीक कर सकते हैं। बस यहां जाएं:

विंडो -> प्राथमिकताएं -> एंड्रॉइड -> लिंट त्रुटि जांचना।

खोजें ProtectedPermission सूची से और (उदाहरण के लिए जानकारी) त्रुटि के अलावा कुछ करने के लिए गंभीरता निर्धारित किया है। इस तरह आपकी परियोजना अभी भी संकलित होगी।

+0

यह काम करता है .. मेरे घंटों को बचाने के लिए बहुत बहुत धन्यवाद – Shalini

6

MODIFY_PHONE_STATE सिस्टम-केवल अनुमति है। सिस्टम ऐप्स या तो सिस्टम फ़ोल्डर में पूर्व-स्थापित होते हैं या उनके सुरक्षा प्रमाणपत्र का उपयोग कर निर्माता द्वारा संकलित किए जाते हैं।

इसलिए, यदि आप ऐसा करने का प्रयास कर रहे हैं तो आप एपीआई का उपयोग करने की कोशिश कर रहे हैं जो अब समर्थित नहीं है। एंड्रॉइड संस्करण 2.3+ के साथ आप आने वाली कॉलों की निगरानी कर सकते हैं, लेकिन अवरुद्ध करने की अनुमति नहीं है (मुझे लगता है कि आपके द्वारा पोस्ट किए गए लिंक से आप जो करने की कोशिश कर रहे हैं)। Issue 15022 और Issue 14789

+0

हाँ, मैं आने वाली कॉल को अवरुद्ध करने की कोशिश कर रहा था, और इसलिए यह समस्या वास्तव में बेकार है। –

+0

तो, Play Store पर कुछ ऐप्स कैसे हैं जो कॉल अवरोधन कर सकते हैं? –

+0

मैं कॉल को ब्लॉक नहीं करता हूं। वे कहते हैं कि वे करते हैं, लेकिन वे जो भी कर सकते हैं वह उपयोगकर्ता को सूचित करता है (जब अवरुद्ध संख्या कॉल करता है), लेकिन इसे पूरी तरह अवरुद्ध नहीं कर सकता है। एंड्रॉइड 2.3+ संस्करणों में यह सब कुछ है। – Nerd

4

यह त्रुटि एसडीके 1 9 में दिखाई देती है, जब आप मेनिफेस्ट बदलते हैं। परियोजना स्वच्छ और बनाएं। यह इस त्रुटि को साफ़ करना चाहिए। क्योंकि इस प्रणाली के स्तर अनुमति डिवाइस डेवलपर अनुदान नहीं यह इतना अनुप्रयोग विकास उपकरण भी यह इतना के खिलाफ चेतावनी दी है है

+1

यह एक टिप्पणी होनी चाहिए, उत्तर –

2

सिर्फ अपनी परियोजना को साफ इसे इस तरह ठीक हो जाएगा आप बस में सूची से

+0

नहीं है। यह इस मामले में मदद नहीं करेगा। –

2

परियोजना> स्वच्छ ...:

0

ढूँढें ProtectedPermission परियोजना पर क्लिक करें और उस परियोजना को साफ करने के लिए है

Window -> Preferences -> Android -> Lint Error Checking. 

और गंभीरता को त्रुटि के अलावा किसी अन्य चीज़ पर सेट करें (उदाहरण के लिए जानकारी)। इस तरह आपकी परियोजना अभी भी संकलित होगी।

0

वहाँ

Regular 
Dangerous 
Signed 
Signed or System 

The first two can be used by Simple Apps अन्य दो ही एप्लिकेशन जिसमें ढांचे

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

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