5

私は広く検索しても問題は見つかりませんでした。 Android NougatIntentを使用してAPK fileをインストールしようとすると、「パッケージの解析中に問題が発生しました」という警告が表示されます。APKファイルをインストールする意図 - Android Nougat

PDFファイルを開くには、このタイプのファイル(。PDF)を開くなど、ファイルを完全に開くことができます。しかし、インストールする。 apkファイルが機能しません。

LogCatは表示されていません。何も解決策はありません。

何が間違っている可能性がありますか?

次のコード

マニフェスト

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INSTALL_PACKAGES" /> 

<provider 
     android:name="android.support.v4.content.FileProvider" 
     android:authorities="br.com.xxxxxx.xxxxxx.fileprovider" 
     android:exported="false" 
     android:grantUriPermissions="true"> 
     <meta-data 
      android:name="android.support.FILE_PROVIDER_PATHS" 
      android:resource="@xml/filepaths"/> 
    </provider> 

XML /ファイルパス:

<paths xmlns:android="http://schemas.android.com/apk/res/android"> 
<files-path name="storage/emulated/0" path="."/> 

アクティビティー:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 
     try { 
      Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE); 
      File file = new File(getContext().getFilesDir(), "app-debug.apk"); 
      Uri uri = FileProvider.getUriForFile(getContext(), BuildConfig.APPLICATION_ID + ".fileprovider", file); 

      intent.setDataAndType(uri, "application/vnd.android.package-archive"); 
      intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
      startActivity(intent); 
      finish(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    }else{ 
     try { 
      Intent intent = new Intent(Intent.ACTION_VIEW); 
      File file = new File(Environment.getExternalStorageDirectory() + "/app-debug.apk"); 

      intent.setAction(android.content.Intent.ACTION_VIEW); 
      intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); 
      intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
      startActivity(intent); 
      finish(); 
     } catch (Exception e) { 
      e.getMessage(); 
     } 
    } 

どうすればこのコードが間違っている可能性がありますか?誰か助けてくれますか?

+0

'広範囲に検索し、problem.'はその後この問題はほんの数週間前にここで報告されているように良くしようと見つけることができませんでした。 – greenapps

+0

あなたは解決策を見つけましたか? – Gautam

答えて

1

N(およびそれ以上)の意図を変更して型名を削除する必要がありました。私がそれをしたら、インストールは期待通りに機能しました。 Nのためにそう

Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE); 
File file = new File(getContext().getFilesDir(), "app-debug.apk"); 
Uri uri = FileProvider.getUriForFile(getContext(), BuildConfig.APPLICATION_ID + ".fileprovider", file); 
intent.setData(uri) 
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
startActivity(intent); 
finish(); 
関連する問題