2016-10-06 12 views
0

JSONのURLから取得するPDFファイルを開く必要があります。アプリチューザーのURLから直接PDFファイルを開く方法

このURLには、URLの最後にファイル拡張子が含まれていません。私はこのような何か試してみました:

 final String pdfUrl = dataUrl.replace("data", "file") + "/x?filefield=" + tf.getFieldName() + "&context=\"" + dataItemIdModOne + "\"&skipcache=1"; 
     SharedPreferences sharedPrefs = getActivity().getSharedPreferences(Constants.userDetails, MODE_PRIVATE); 
     String username = sharedPrefs.getString(Constants.user, ""); 
     String password = sharedPrefs.getString(Constants.pass, ""); 
     String userPassword = username + ":" + password; 
     final String basicAuth = "Basic " + new String(new Base64().encode(userPassword.getBytes())); 
     final Map<String, String> extraHeaders = new HashMap<>(); 
     extraHeaders.put("Authorization", basicAuth); 
     pdfIcon.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Uri uri = Uri.parse(pdfUrl); 
       Intent target = new Intent(Intent.ACTION_VIEW); 
       target.setDataAndType(uri,"*/*"); 
       Bundle bundle = new Bundle(); 
       bundle.putString("Authorization", basicAuth); 
       target.putExtra(Browser.EXTRA_HEADERS, bundle); 

       Intent intent = Intent.createChooser(target, "Open File"); 
       try { 
        startActivity(intent); 
       } catch (ActivityNotFoundException e) { 
        Toast.makeText(getActivity(), "Please install PDF app", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 

を私はちょうど直接で利用可能なPDFリーダーを開くには、彼/彼女は、ファイルを開くために魔女のアプリで選択するか、せいぜいますので、ユーザーにアプリチューを提示する必要があります彼/彼女のデバイス。

この実装では、アプリケーションの選択を取得します。ファイルを開くときにファイルが読み込まれますが、最後にファイルを開くことはできません。

このURLを持つドリルは、URLが呼び出されると、PDFファイル自体を含む別のURLにリダイレクトされるということです。しかし、私はその2番目のURLを見ることができません。また、ブラウザにURLを貼り付けると、ユーザー名とパスワードが要求されます(そのため、基本認証が必要です)。

ありがとうございます。

答えて

0

もしあれば、PDF視聴者はACTION_VIEWアクティビティのためにhttp/httpsをサポートします。事実上、ランダムIntentエクストラをサポートするものはありません。たとえば、EXTRA_HEADERSです。

お気に入りのHTTPクライアントAPI(例:HttpUrlConnection、OkHttp)を使用して、自分でPDFをダウンロードします。次に、ダウンロードしたPDFを表示するにはACTION_VIEWを使用してください。

関連する問題