Я разрабатываю PDF-ридер, так как у андроида нет встроенного средства просмотра PDF файлов, поэтому мне нужно использовать сторонний просмотрщик PDF файлов. в этом случае я выбрал Adobe pdf viewer для Android. Я могу открыть файл pdf, который хранится в SD-карте моего устройства. Теперь я хочу открыть файл PDF, защищенный паролем, из моего приложения. Если пользователь хочет открыть PDF файл с защитой паролем вручную, используйте для этого пароль при открытии. но я хочу открыть этот pdf файл с паролем из моего приложения без подсказки пароля. Приложение предоставляет пароль, [apps знает пароль] и без подсказки пароля, откроется pdf.
в настоящее время, если я хочу открыть любой защищенный паролем pdf файл из моего приложения, появится запрос пароля и ему потребуется пароль для его открытия.
Я использую этот код, чтобы открыть pdf из моих сохраненных файлов PDF в SDCARD.
====
File pdfFile = new File(fileLocation);
if (pdfFile.exists())
{
Uri pdfFilepathUri = Uri.fromFile(pdfFile);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(pdfFilepathUri, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try
{
startActivity(intent);
}
catch (ActivityNotFoundException e)
{
Toast.makeText(this,"No Application Available to View PDF : "+fileLocation,Toast.LENGTH_LONG).show();
}
}
else
Toast.makeText(this,"File cannot found : "+fileLocation,Toast.LENGTH_SHORT).show();
====
кто-нибудь, пожалуйста, помогите, как я могу предоставить пароль из приложения, чтобы он мог автоматически открыть PDF файл без запроса окна пароля. ?
Если пользователь хочет открыть PDF файл с защитой паролем вручную, используйте для этого пароль при открытии. но я хочу открыть этот pdf файл с паролем из моего приложения без подсказки пароля.
Вы можете связаться с авторами различных приложений просмотра PDF, чтобы увидеть, если они поддерживают принятие пароля PDF через Intent
дополнительного или что - то. В документально ACTION_VIEW
протоколе ACTION_VIEW
, предназначенном для поддержки этого сценария, нет ничего.
Короче говоря, вы не можете. Там нет читателей в формате PDF, которые я знаю о том, что они поддерживают это, но даже если это было, вы не можете полагаться на пользователя, у которого установлен этот конкретный читатель, поэтому нет способа заставить его работать повсеместно.
Однако вы можете обойти это, используя библиотеку, которая обрабатывает весь тяжелый подъем PDF-рендеринга, чтобы создать свой собственный основной вид PDF в вашем приложении, а затем использовать это представление для открытия PDF файла. Некоторые из таких библиотек, как связанная с библиотекой AndroidPdfViewer
позволяют указать пароль, например:
pdfView.fromFile(file)
.password("password123")
.load();
Это позволит вам предлагать универсальное решение для отображения файлов PDF с защитой паролем, а также иметь дополнительное преимущество безопасности, чтобы не утечка пароля между контекстами.