if ("string") {
console.log('true!');
}
Как вы уже знаете, если оценивает логическое выражение. Поэтому он проверяет
if((Boolean)"string")
Так как строка (bool) истинна, она проходит. Но в случае
if ("string"==true) {
console.log('true!');
}
Вы пытаетесь приравнять строку с bool, которая, очевидно, сравнивает их и возвращает false.
@palash k ответ правильный и работал для файлов внутреннего хранилища, но в моем случае я хочу открыть файлы и из внешнего хранилища, мое приложение зависало при открытии файла из внешнего хранилища, такого как sdcard и usb, но мне удается решить исправить ошибку путем изменения provider_paths.xml из принятого ответа
изменить provider_paths.xml , как показано ниже
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path path="Android/data/${applicationId}/" name="files_root" />
<root-path
name="root"
path="/" />
</paths>
и в классе java (Нет изменить в качестве принятого ответа просто небольшую правку)
Uri uri=FileProvider.getUriForFile(getActivity(), BuildConfig.APPLICATION_ID+".provider", File)
Это поможет мне исправить сбой файлов из внешних хранилищ. Надеюсь, это поможет кому-то, имеющему ту же проблему, что и моя :):
Здесь мое решение:
в [1 111] Manifest.xml
<application
android:name=".main.MainApp"
android:allowBackup="true"
android:icon="@drawable/ic_app"
android:label="@string/application_name"
android:logo="@drawable/ic_app_logo"
android:theme="@style/MainAppBaseTheme">
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
в [1 112] res/xml/provider_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="."/>
</paths>
в моем фрагменте у меня есть следующий код:
Uri myPhotoFileUri = FileProvider.getUriForFile(getActivity(), getActivity().getApplicationContext().getPackageName() + ".provider", myPhotoFile);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.putExtra(MediaStore.EXTRA_OUTPUT, myPhotoFileUri);
Рўhat все Вам нужно.
Также не нужно для создания
public class GenericFileProvider extends FileProvider {}
, я тестирую на Android 5.0, 6.0 и Android 9.0, и это - работа успеха.
===
с тех пор you' ре, на самом деле создающее 3 абсолютно уникальных объекта.
– user113716
10 November 2010 в 00:30
Просто позвольте ему проигнорировать Воздействие URI... Добавьте его после того, как на создадут
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build());