2016-10-29 4 views
2

では動作しません。私は、ファイルマネージャを開発している、と私は、ファイルをこのように開きます。Androidの意図はの.apkファイル

fileName = fileToOpen.getName(); 
fileName = fileName.substring(fileName.lastIndexOf('.') + 1); 
Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
Uri uri = FileProvider.getUriForFile(getContext(), BuildConfig.APPLICATION_ID + ".provider", fileToOpen); 
intent.setDataAndType(uri, MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileName)); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_GRANT_READ_URI_PERMISSION); 
startActivity(intent); 

これは、ほぼすべての拡張子を扱うことができますが、私はの.apkファイルをクリックしたときActivityNotFoundExceptionがスローされます。私はアンドロイドインストール画面を起動したいと思います。

答えて

3

パッケージインストーラはAndroid 7.0以降でcontentUriの値を使用する方法のみを認識します。以前のバージョンのAndroidの場合は、external storageのAPKをどこかに置き、fileUriを使用する以外に選択肢はありません。

関連する問題