2017-02-12 2 views
0

В моем приложении для Android я хотел бы дать пользователю создать ярлык на главном экране, который открывает файл PDF, расположенный в определенном месте. В своем исследовании я узнал, что мы можем создавать ярлыки, которые открывают конкретные действия. Но в моем случае мне нужно открыть конкретный файл PDF, используя любой установленный PDF-ридер.Создайте ярлык на главном экране, чтобы открыть файл PDF

Я знаю, что есть что-то связанное с Намерением. Спасибо за помощь.

EDIT 1: Вот код, который я пробовал. Он не открывает файл, но вместо этого открывает приложение. Пожалуйста, скажите мне, что случилось.

File file = new File(Environment.getExternalStorageDirectory()+"/CDLU Mathematics Hub","Time Table For Even Semesters (2017).pdf"); 
     Uri path = Uri.fromFile(file); 
     Intent shortcutIntent = new Intent(getApplicationContext(), Home.class); 
     shortcutIntent.setAction(Intent.ACTION_MAIN); 
     shortcutIntent.setDataAndType(path, "application/pdf"); 
     Intent addIntent = new Intent(); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "TimeTable"); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 
       Intent.ShortcutIconResource.fromContext(getApplicationContext(), 
         R.drawable.icon)); 
     addIntent.putExtra("duplicate", false); 
     addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
     getApplicationContext().sendBroadcast(addIntent); 
+0

AFAIK, 'ACTION_CREATE_SHORTCUT' не ограничивается конкретными действиями. Создайте 'ACTION_VIEW'' Intent', указывая на ваш файл PDF, затем используйте это 'Intent' с' ACTION_CREATE_SHORTCUT'. – CommonsWare

+0

Не могли бы вы разместить его в качестве ответа с образцом кода, чтобы я мог отметить его как ответ? –

+0

Пожалуйста, отметьте мое редактирование –

ответ

0

Благодаря @CommonsWare, я понял это. Вот код:

File file = new File(Environment.getExternalStorageDirectory()+"/Folder Name","File Name.pdf"); 
     Uri path = Uri.fromFile(file); 
     Intent shortcutIntent = new Intent(Intent.ACTION_VIEW); 
     shortcutIntent.setDataAndType(path, "application/pdf"); 
     Intent addIntent = new Intent(); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "TimeTable"); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 
       Intent.ShortcutIconResource.fromContext(getApplicationContext(), 
         R.drawable. 
     addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
     getApplicationContext().sendBroadcast(addIntent); 
Смежные вопросы