سؤال

أحاول استخدام إطار الوصول إلى التخزين لنظام Android 4.4

لقد قمت بتطوير تطبيق وهمي يطلق نية عند بدء النشاط.

    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    startActivityForResult(intent, READ_REQUEST_CODE);

لقد قمت أيضًا بتطوير تطبيق وهمي آخر يعمل كموفر للملفات.

        <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.saf"
    android:versionCode="1"
    android:versionName="1.0" >
<uses-sdk
    android:minSdkVersion="19"
    android:targetSdkVersion="19" />

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

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.saf.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <provider
        android:name="com.example.saf.MyFileProvider"
        android:authorities="com.example.saf.documents"
        android:exported="@bool/is_kitkat"
        android:enabled="@bool/is_kitkat"
        android:grantUriPermissions="@bool/is_kitkat"
        android:permission="android.permission.MANAGE_DOCUMENTS">
        <intent-filter>
            <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
        </intent-filter>
    </provider>

</application>

لقد قمت بتطبيق فئة MyFileProvider.

ولكن عندما أقوم بتشغيل تطبيق المستخدم (التطبيق الذي يطلق النية)، أحصل على الخطأ التالي

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.OPEN_DOCUMENT cat=[android.intent.category.OPENABLE] }

كنت أتابع للتو مستندات مطور Android.أي أفكار عما قد أفعله خطأ؟

يحرر:هنا هو بياني الأخير.هل أحتاج أيضًا إلى تنفيذ "مناسب" لـ MyFileProvider "extends DocumentsProvider"؟هل يمكنني فقط إرجاع قيمة فارغة في الوظائف في الوقت الحالي؟

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

المحلول

أضف نوع التمثيل الصامت، أو ببساطة intent.setType("*/*").

يبدو أن هذا أ قضية معروفة. setType() مطلوب.

يحرر:تحتاج أيضا إلى إضافة android:enabled="true", ، لاحظ أنه يجب عليك الرجوع إليه من القيم وليس مباشرة وذلك لتمكينه فقط من أجل >=kitkat.لذا android:enabled="@bool/is_kitkat", <bool name="atLeastKitKat">false</bool> في /res/values/ و <bool name="atLeastKitKat">true</bool> في /res/values-v19/

نصائح أخرى

لفتح جميع الملفات إضافة هذا السطر:

giveacodicetagpre.

وإذا كنت بحاجة إلى تصفية لعرض الصور إضافة هذا الخط:

giveacodicetagpre.

يلقي فقط نيتك، مثل،

giveacodicetagpre.

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