У меня проблема в приложении Android Studio.Мое приложение должно сохранять некоторые файлы с пользовательским расширением (".ard") во внешнем хранилище.А затем откройте File Chooser и выберите файл .ard, чтобы приложение могло его открыть.
Дело в том, что когда я открываю File Chooser, я не могу найти свои .ard файлы, дажев папках они есть, я просто могу найти их с помощью Проводника файлов, но не в Средстве выбора файлов моего приложения.Еще одна вещь, которую я хочу сделать, это то, что когда кто-то щелкает файл из Android File Explorer, я открываю приложение и диалоговое окно, происходит ли событие, которое запускается при открытии файла из внешнего хранилища?.
И как я могу установить изображение для моих файлов .ard, чтобы, когда вы видите их в проводнике, файлы появлялись с этим значком?
Спасибо.
Это мой манифест Androidкод:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="sebgarcia.acardia">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".HomeActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="file"/>
<data android:mimeType="*/*"/>
<data android:pathPattern=".*\\.ard"/>
<!-- These additional pathPattern blocks are to allow for paths with
additional periods in them. See:
/2296671/pathpattern-dlya-sopostavleniya-rasshireniya-faila-ne-rabotaet-esli-v-drugom-meste-imeni-faila-suschestvuet-tochka -->
<data android:pathPattern=".*\\..*\\.ard"/>
<data android:pathPattern=".*\\..*\\..*\\.ard"/>
<data android:pathPattern=".*\\..*\\..*\\..*\\.ard"/>
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.ard"/>
<data android:host="*"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="file"/>
<data android:pathPattern=".*\\.ard"/>
<data android:host="*"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:mimeType="application/vnd.ni.custom"
android:scheme="file"/>
<data android:host="*"/>
<data android:pathPattern=".*\\.ard" />
</intent-filter>
</application>
</manifest>
Это мой код диалога (вызывается из активности)
private void StartSearch()
{
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("text/ard");
intent.addCategory(Intent.CATEGORY_OPENABLE);
try
{
startActivityForResult(
Intent.createChooser(intent, "Select a file to import"), Code
);
}
catch (android.content.ActivityNotFoundException ex)
{
//Doesnt have a File Manager
Toast.makeText(getContext(), "Please, Install a File Manager", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
int Code = 43;
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == Code && resultCode == Activity.RESULT_OK) {
if (data != null) {
Uri uri = data.getData();
Toast.makeText(this, "Opened File", Toast.LENGTH_SHORT).show();
}
}
}