سؤال

لقد أعلنت أن وضع إطلاق نشاطي هو مهمة واحدة.إذا قمت بتشغيل طلبي ، فاضغط على زر الصفحة الرئيسية ، انتقل إلى عميل بريد إلكتروني (Gmail في هذه الحالة) ومعاينة مرفق باستخدام طلبي ، أواجه استثناءًا من الأمان على إصدارات Android 2.3 وبعد ذلك ، وهو ما يقول أنني لا أملكني أذونات الوصول إلى مرفقات Gmail.لا يحدث الاستثناء في الإصدارات السابقة ، وإذا لم أستخدم Singletask كأداة إطلاق.

الاستثناء يحدث على هذا السطر-

mContext.getContentResolver().openInputStream(intent.getData());

حيث mContext هو سياق النشاط.

هل هذه مشكلة معروفة؟

أي مساعدة ستكون موضع تقدير حقا.

شكرًا،

أكشاي

هل كانت مفيدة؟

المحلول

لقد نشرت هذا على مطوري Android وتلقيت هذا الرد من Dianne Hackborn-

"عذرًا ، ربما يكون هذا خطأ في 2.3 مع محاولة منح إذن URI لمثيل نشاط قيد التشغيل بالفعل. سأبحث في هذا. في الوقت الحالي ، قد يكون الحل الوحيد هو عدماستخدم singleTask للنشاط الذي يتم تشغيله لمعاينة أحد المرفقات. هذا هو الشيء المفضل فعلاً ، نظرًا لأن نشاط المعاينة يجب أن يعمل كمثيل خاص به كجزء من مهمة gmail. "

نصائح أخرى

قد تحدث المشكلة لأن نشاط النية المستدعى في تطبيق 2.3 لا يتناسب مع launchMode:"standard" أو launchMode:"singleTop" الشرط المذكور في android: وصف وضع التشغيل.

ولكن سيكون من المفيد أيضًا إلقاء نظرة عليها هذه المسألة:سلوك LaunchMode="singleTask" ليس كما هو موصوف.إنه أمر مخيف، ونأمل ألا تكون مشكلتك متجذرة هناك، ويمكن حلها ضمن الإصدارات الحالية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top