2017-02-12 14 views
0

私のアンドロイドアプリでは、ホーム画面にショートカットを作成して特定の場所にあるPDFファイルを開くことができます。私の研究では、特定の活動を開くショートカットを作成できることがわかった。しかし私の場合、インストールされているPDFリーダーを使用して特定のPDFファイルを開く必要があります。ホーム画面にショートカットを作成してPDFファイルを開く

私はインテントと何か関係があることを知っています。ご協力ありがとうございました。

編集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は特定のアクティビティに限定されません。あなたのPDFファイルを指し示す 'ACTION_VIEW'' Intent'を作成し、その '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); 
関連する問題