2015-01-15 5 views
3

나는 현재 안드로이드에 sqlite 데이터베이스에서 (아파치 poi와 함께) 엑셀 파일을 만드는 응용 프로그램을 개발하고 있습니다. 파일을 다른 앱으로 보낼 수 없다는 것을 제외하면 모든 것이 잘 작동합니다.excel 파일을 보관 용 계정 또는 Google 드라이브에 업로드 하시겠습니까?

의 AndroidManifest.xml :

<provider 
     android:name="android.support.v4.content.FileProvider" 
     android:authorities="com.example.ria.masterdetailnoten" 
     android:exported="false" 
     android:grantUriPermissions="true"> 

     <meta-data 
      android:name="android.support.FILE_PROVIDER_PATHS" 
      android:resource="@xml/file_paths"></meta-data> 
</provider> 

file_paths.xml :

<?xml version="1.0" encoding="utf-8"?> 
<paths xmlns:android="http://schemas.android.com/apk/res/android"> 
    <files-path name="backup" path="backup/"/> 
</paths> 

ExcelFile.java :

Uri uriFile = FileProvider.getUriForFile(ct, "com.example.ria.masterdetailnoten", backupFile); 
Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setDataAndType(uriFile, "application/vnd.ms-excel"); 
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
intent.createChooser(intent, "Choose"); 
ct.startActivity(intent); 
나는 다른 응용 프로그램 내 파일에 대한 권한을 가질 수 있도록 나는 fileprovider를 구현

확실히 내 파일이 만들어지고 다시 읽을 수 있음을 알고 있습니다. th 아파치 POI. 따라서 작동하지 않는 유일한 방법은 다른 앱으로 인 텐트를 보내는 것입니다. 그때 오류가 다음과 같은 의도 츄 Google 드라이브를 선택하는 경우 예를 들어


가 나타납니다 은 "업로드에 실패했습니다. 요청이 데이터를 포함하지 않습니다" , 난 당신이 나에게 사람들을 도울 수 있기를 바랍니다

"사서함 선택한 파일을 읽을 수 없습니다"나는 당신의 도움을 주셔서 감사합니다 : I 사서함 앱 다음과 같은 오류를 열면

나타납니다!

답변

1

시도해 보셨습니까? putExtra(Intent.EXTRA_STREAM, uriFile) 대신 setData(AndType)?