0
장치에 저장하는 파일을 열려고하는데 열 수 없습니다. 장치에 "이 문서를 열 수 없습니다."라고 표시됩니다.Android DownloadManager가 파일을 장치에 저장하고 열 수 없습니다.
여기 내 코드가 있습니다. 파일은 .ppt 형식입니다. 여기
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
코드입니다 : 분명히
내가 매니페스트에 이러한 권한이
String fileName = doc.getName();
String packageName = fragment.getActivity().getPackageName();
String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/Android/data/" + packageName + "/files/";
File saveFile = new File(path + fileName);
File parentDest = saveFile.getParentFile();
if (!parentDest.exists()) {
parentDest.mkdirs(); //make all the directory structures needed
}
if (!saveFile.exists()) {
try {
saveFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(getContext(), "Downloading...", Toast.LENGTH_SHORT).show();
downloadingDocs.add(doc);
final DownloadManager downloadManager;
final long myDownloadReference;
downloadManager = (DownloadManager) fragment.getActivity().getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse(url);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.addRequestHeader("Authorization", "Basic " + SharedPref.getAuthPrefValue());
request.addRequestHeader("Device", BaseApplication.getCurrentDevice().getDevice().toString());
request.addRequestHeader("DeviceId", BaseApplication.getCurrentDevice().getDeviceId());
request.setDescription(fileName).setTitle("Downloading Document");
request.setDestinationInExternalFilesDir(getContext(), path, fileName);
request.setVisibleInDownloadsUi(true);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
myDownloadReference = downloadManager.enqueue(request);
finalHolder1.downloadProgress.setVisibility(View.VISIBLE);
new Thread(new Runnable() {
@Override
public void run() {
downloading = true;
while (downloading) {
DownloadManager.Query q = new DownloadManager.Query();
q.setFilterById(myDownloadReference);
Cursor cursor = downloadManager.query(q);
cursor.moveToFirst();
int bytes_downloaded = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
int bytes_total = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES));
if (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager.STATUS_SUCCESSFUL) {
downloading = false;
downloadingDocs.remove(doc);
}
//final double dl_progress = (bytes_downloaded/bytes_total) * 100;
final int dl_progress = (int) ((bytes_downloaded * 100l)/bytes_total);
fragment.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
finalHolder2.downloadProgress.setProgress((int) dl_progress);
}
});
cursor.close();
}
}}).start();
} else {
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(saveFile), "application/vnd.ms-powerpoint");
fragment.getActivity().startActivity(intent);
}
'파일을 여는 데 응용 프로그램을 찾을 수 없습니다.'라는 'startActivity (Intent.createChooser (intent, "파일 열기 ..."));'를 사용하십시오. –
무엇이 다른가요? action_view는 이미 열 수있는 프로그램 목록으로 팝업을 엽니 다. 그러나 POLARIS Office Viewer 5와 Kingsoft Office의 두 가지 프로그램을 이미 시도했습니다. 둘 다 열 수 있어야하지만 둘 다 "이. 서를 열 수 없습니다"라고 써 있습니다. – JozeRi
sdcard 브라우저를 사용하여 수동으로 파일을 볼 수 있습니까? –