android - मार्टमल्लो पर आशय कॉल कार्रवाई काम नहीं करती




android-intent android-permissions (2)

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

रन टाइम पर अनुमतियों का अनुरोध करना

आशा करता हूँ की ये काम करेगा।

मैं एक ऐसे उपकरण पर एक कॉल इरादा कार्रवाई शुरू करने की कोशिश कर रहा हूं जिस पर मार्शमॉल ओएस के रूप में है, सामान्य रूप से एक ही चरण का उपयोग करना (यह संस्करणों पर काम कर रहा है):

अनुमति जोड़ें:

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

आशय खोलें:

Intent intent = new Intent(Intent.ACTION_CALL);
                    intent.setData(Uri.parse("tel:" + getString(R.string.connect_phone)));
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);

यह लॉग मुझे मिल रहा है:

घातक अपवाद: मुख्य

प्रक्रिया: com.app.calling, PID: 4250 java.lang.SecurityException: अनुमति अस्वीकृति: प्रारंभिक आशय {अधिनियम = android.intent.action.CALL डीटी = टेली: xxxxxxxxxxxxx flg = 0x10000000 cmp = com.android.server.telecom / .components.UserCallActivity VirtualScreenParam = Params {mDisplayId = -1, Null, mFlags = 0x00000000}}} से ProcessRecord {1618b01 4250: com.app.calling / u0a234} (पीआईडी ​​= 4250, यूआईडी = 10234) रद्द की अनुमति के साथ एंड्रॉइड.permission एंड्रॉइड पर Android.os.ActivityManagerProxy.startActivity (ActivityManagerNative.java3130) पर android.os.Parcel.readException (पार्सेल.जावाइंइं) और एंड्रॉइड। पर। परसेल.रेडियो एक्सपैशन (पार्सेल.जावा 15773) पर कॉल। एंड्रॉइड। एफ़.ए.फ़. 4. एप पर android.app.Activity.execStartActivity (Instrumentation.java.1540) एंड्रॉइड.एप.ऍक्टिवटी.टैक्ट एक्टिव्वाफ़ीरसल्ट (गतिविधि.जावास्क्रीन 283) एंड्रॉइड। एप। एक्टिविटी। स्टार्ट अटक्टिविटीफोर रिज़ल्ट (गतिविधि.जावा 4230) .FragmentActivity.startActivityFromFragment (FragmentActivity.java:849) एंड्रॉइड। Support.v4.app.FragmentActivity $ होस्टकॉलबैक .ऑनस्टार्ट एक्टिविटीफ़्र com.app.calling.activity.fragment पर कनेक्ट करें। android.widget.ExpandableListView.handleItemClick (ExpandableListView.java:676) android.widget.expandableListView.performItemClick पर (ExpandableListView.java:654) android.widget.AbsListView पर $ PerformClick.run (AbsListView.java:3821) android.widget पर .AbsListView $ 3.run (AbsListView.java:5841) पर android.os.Handler.handle पर कॉलबैक (हैंडलर.जावा: 739) android.os.Handler.dispatchMessage (हैंडलर.जावाः 9 5) एंड्रॉइड.ओएस.लओपर.लओप पर (Looper.java158) पर android.app.ActivityThread.main (ActivityThread.java:7224) पर java.lang.reflect.Method.invoke (मूल विधि) पर com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ज़ीगोटेइनिट.जावा 1230) com.android.internal.os.ZygoteInit.main पर (ज़ीगोटेइनित.जावा 1120)

दोबारा, यह प्रक्रिया पिछले संस्करण (लॉलीपॉप और किटकैट) में ठीक काम कर रही है दुर्भाग्य से मार्शमॉलो पर नहीं है, क्या किसी को पता है कि मुझे या क्यों याद आ रही है?


एंड्रॉइड 6.0 (एपीआई 23) में शुरुआत, खतरनाक अनुमतियां प्रकट होने में प्रकट होनी चाहिए और आपको स्पष्ट रूप से उपयोगकर्ता से उस अनुमति का अनुरोध करना होगा। इस सूची के अनुसार, CALL_PHONE को एक खतरनाक अनुमति माना जाता है।

हर बार जब आप एक ऑपरेशन करते हैं जिसके लिए खतरनाक अनुमति की आवश्यकता होती है, तो आपको अवश्य जांचना होगा कि उपयोगकर्ता द्वारा अनुमति दी गई है या नहीं। अगर ऐसा नहीं है, तो आपको यह अनुरोध करना होगा कि उसे दी जाएगी। एंड्रॉइड डेवलपर्स पर रन टाइम पर अनुमतियों का अनुरोध करना देखें