2013-09-26 5 views
0

Я тестирую в VirtualBox Oracle, с VM = «WSVGA 7.0 Tablet - 4.2.2 - API17»Подключение Intents намерению фильтров

Я не могу использовать Intent для подключения к приложению с этим кодом:

Intent intent = new Intent("com.estrongs.action.PICK_FILE"); 
    Intent intent = new Intent("com.example.filechooser.PICK_DIRECTORY"); 
    //  intent.setDataAndTypeAndNormalize(Uri.parse("file://"), "*/*"); 
      //No Activity found to handle Intent { act=com.estrongs.action.PICK_FILE dat=file:// typ=*/* } 
      //No Activity found to handle Intent { act=com.estrongs.action.PICK_FILE } 
    //  intent.setType("*/*"); 
      //No Activity found to handle Intent { act=com.estrongs.action.PICK_FILE typ=file/* } 
      //No Activity found to handle Intent { act=com.estrongs.action.PICK_FILE typ=*/* } 
      // NOTE: Extra space at end of action above. removed below 
      //No Activity found to handle Intent { act=com.estrongs.action.PICK_FILE typ=*/* } 
      //No Activity found to handle Intent { act=com.example.filechooser.PICK_DIRECTORY typ=*/* } 
      //No Activity found to handle Intent { act=com.example.filechooser.PICK_DIRECTORY } 
//  startActivityForResult(intent, FolderChosen); 
> 

С моей AndroidManifest.xml:

<intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <action android:name="android.intent.action.SEND" /> 
     <action android:name="android.intent.action.GET_CONTENT" /> 
     <category android:name="android.intent.category.OPENABLE" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <data android:mimeType="*/*" /> 
    </intent-filter> 

    <intent-filter> 
     <action android:name="com.example.filechooser.PICK_DIRECTORY" /> 
    </intent-filter> 

> я получил эту работу:

Intent намерения = новый Intent (Intent.ACTION_GET_CONTENT); intent.setDataAndTypeAndNormalize (Uri.parse ("file: //"), "/"); // Файл: // РАБОТАЛ

// onCreate intent=Intent { act=android.intent.action.GET_CONTENT dat=file:// typ=*/* 
//  flg=0x3000000 cmp=com.example.filechooser/.FileChooser } <<<<<<<<<<<<<NOTE: WORKED 

Как я должен кодировать пристальный фильтр, который может быть выбран с помощью намерения, как это:

Намерение намерения = новый Intent ("com.estrongs.action .PICK_FILE "); Intent intent = new Intent ("com.example.filechooser.PICK_DIRECTORY");

+0

Просим прощения за форматирование. Я долго пробовал удовлетворять запросы форума о ошибке «содержит код» и после десятков сбоев я ушел после первого успеха. – NormR

ответ

2
<intent-filter> 
    <action android:name="com.estrongs.action.PICK_FILE" /> 
    <action android:name="com.example.filechooser.PICK_DIRECTORY" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.OPENABLE" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
</intent-filter> 

Я предполагаю, что вы будете принимать все типы MIME, так как ваш элемент содержит «/», поэтому я предлагаю вам опустить элемент. По умолчанию, если элемент фильтра (т.е.) отсутствует, Android будет соответствовать любому значению.

+0

Должны ли элементы действия и категории находиться в одной и той же группе <намерение-фильтр>? Я имею их в двух группах, как показано выше в моем посте. Пакет com.estrongs.action предназначен для намерения, которое должно было подключиться к приложению ES File Manager. – NormR

+0

Спасибо. Это работает. Я добавил этот код как второй фильтр намерений. Теперь, когда у меня есть две группы намеренных фильтров, я могу получать приложения для выбора файлов или папок. – NormR

Смежные вопросы