سؤال

أنا أعمل على تطبيق Android يستخدم NFC لفتح النشاط.لذلك قمنا بكتابة علامة NFC بنوع MIME محدد، كما هو الحال في مثال واجهة برمجة التطبيقات (API)، بحيث يمكن لتطبيقي فقط فتح البيانات الموجودة فيها.كان يعمل بشكل جيد على Android 2.3.3 إلى Android 4.0.4.

الآن، بعد أن قمت بترقية جهاز Samsung Galaxy Nexus إلى Android 4.1 Jelly Bean، لم تعد علامة NFC تفتح تطبيقي بعد الآن.والشيء المضحك هو أن الهاتف يتعرف على نوع mime للعلامة عندما يعرضها في قارئ android nfc الافتراضي.

لذا فإن السؤال هو...لماذا لا يتم فتح التطبيق بواسطة علامة NFC في Android 4.1 Jelly Bean؟

كود الهدف في AndroidMenifest.XML الخاص بي:

    <activity 
        android:name=".ActivityToOpenWithNfcTag"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="application/com.android.barcodeScanner" />
        </intent-filter>
    </activity>

إذا كنت أستخدم نوع mime "نص/عادي" في العلامة والتطبيق فإنه يعمل، ولكني بحاجة إلى نوع mime الفريد الخاص بي.

الرجاء المساعدة!شكرًا.

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

المحلول

واجهت نفس المشكلة بالضبط واكتشفت أنه في Jelly Bean، يقوم بتحويل نوع mimetype إلى جميع الأحرف الصغيرة.أرى أنه في علامة mimetype الخاصة بك تحتوي على أحرف كبيرة "S".

لذا جرب هذا بدلاً من ذلك:

mimeType = "application/com.android.barcodescanner"

أتمنى أن يساعدك هذا :)

نصائح أخرى

في Jellybean، تم تحسين الكشف عن NDEF والتحليل من العلامات وتصبح أكثر صرامة.ربما رسالة NDEF الخاصة بك غير صالحة بطريقة أو بأخرى.تحقق من أن قيمة طول الحمولة الحمولة داخل رسالة NDEF ومقارنة مع طول رسالة رسالة NDEF الكلية كما تخزينها في العلامة.

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