Google Play पर मेरे ऐप्स के साथ समस्याएं हैं। मेरे पास एक निशुल्क ऐप है जो कस्टम अनुमति का उपयोग करता है। यह अनुमति भुगतान किए गए ऐप्स तक पहुंच की अनुमति देती है। ये सशुल्क ऐप्स "कुंजी" के रूप में कार्य करते हैं और निःशुल्क ऐप में सुविधाओं को अनलॉक करते हैं। असल में मुफ्त ऐप भुगतान किए गए ऐप्स में से किसी एक के इरादे को शुरू करने का प्रयास करेगा। सशुल्क ऐप कुछ सामान करेगा और यह कहकर वापस आ जाएगा कि नि: शुल्क ऐप को सुविधाओं को अनलॉक करना चाहिए या नहीं।ऐप इंस्टॉल ऑर्डर पर आधारित एंड्रॉइड कस्टम अनुमति विफलता
ऐप स्थापना के आदेश के आधार पर समस्या उत्पन्न होती है। यदि मुफ़्त ऐप पहले स्थापित किया गया है तो एक सशुल्क ऐप, मुफ़्त ऐप इरादा शुरू नहीं कर सकता है। अनुमति अस्वीकार करता है। यदि भुगतान किया गया ऐप पहले इंस्टॉल किया गया है तो मुफ़्त ऐप, मुफ़्त ऐप इरादा को कोई समस्या नहीं शुरू कर सकता है। डिवाइस को रीबूट करने और/या ऐप्स को रोकने के बल को समस्या का समाधान नहीं होता है। मैं relavent कोड संलग्न कर रहा हूँ। कुछ मुझे बताता है कि मैं कुछ गलत तरीके से कर रहा हूं।
नि: शुल्क एप्लिकेशन प्रकट (प्रासंगिक कोड):
Intent KeyApp = new Intent("com.company.license.action.AUTH_1"); KeyApp.putExtra("com.company.license.challenge", 1); //If free app is installed first, an exception is thrown for not having the proper permission. If paid app is installed first, no exception is thrown try { startActivityForResult(KeyApp, COMMING_FROM_KEYAPP); } catch (Exception e) { cancelStartUp(); }
सशुल्क ऐप प्रकट (प्रासंगिक कोड):
... <uses-permission android:name="com.company.license.PERMISSION" /> ...
नि: शुल्क एप्लिकेशन कोड आशय (प्रासंगिक कोड) की जाँच करने के लिए:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.installer.1" ... <permission android:name="com.company.license.PERMISSION" android:icon="@drawable/icon" android:label="@string/app_name" android:protectionLevel="normal" > </permission> <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoDisplay" > <activity android:name="com.company.license.auth" android:configChanges="keyboardHidden|orientation" android:exported="true" android:permission="com.company.license.PERMISSION" android:theme="@style/Theme.Transparent" > <intent-filter> <action android:name="com.company.license.action.AUTH_1" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <activity android:name="com.company.installer.redirect" android:configChanges="keyboardHidden|orientation" android:exported="true" android:theme="@style/Theme.Transparent" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
यह चाल है। धन्यवाद! –
समस्या: यदि पहले स्थापित ऐप निर्दिष्ट करता है और उसी अनुमति के लिए <उपयोग-अनुमति> निर्दिष्ट करता है, तो उपयोगकर्ता को इंस्टॉल समय पर अनुमति अनुरोध के बारे में सूचित नहीं किया जाता है। दूसरे ऐप इंस्टॉल होने के बाद, पहला एप उस ऐप की आवश्यकता वाले दूसरे ऐप के घटकों तक पहुंच सकता है। प्रमुख सुरक्षा समस्या? –
@ मार्ककार्टर: उपयोगकर्ता को निश्चित रूप से 'हस्ताक्षर'-स्तर अनुमतियों के लिए संकेत नहीं दिया जाएगा। हालांकि, यह वास्तव में स्थापना आदेश पर निर्भर नहीं है; 'हस्ताक्षर '-स्तर अनुमतियां कभी प्रकट नहीं होतीं। चूंकि 'हस्ताक्षर'-स्तर अनुमतियां एक डेवलपर (या टीम) द्वारा लिखे गए कोड के लिए हैं, धारणा यह है कि ये अनुमतियां आंतरिक संचार के लिए कितनी मात्रा में नियंत्रण कर रही हैं, और उपयोगकर्ता को परेशान करने की आवश्यकता नहीं है। यदि, हालांकि, आप अपने वर्णित व्यवहार को कस्टम 'सामान्य' या 'खतरनाक' अनुमतियों के साथ देख रहे हैं, जो मुझे आश्चर्यचकित करेगा, और मुझे और अधिक शोध करने की आवश्यकता होगी। – CommonsWare