使用服务下载后无法打开文件

时间:2017-09-20 08:05:10

标签: android service

我正在使用服务下载mp3文件并将其保存到sdcard / download目录。它工作正常但下载后我无法打开文件。 有一个toast,显示无法打开文件。我认为代码有问题但是当我尝试使用jpg文件时它很好。 这是我的代码

public int onStartCommand(Intent intent, int flags, int startId) {
    urls=intent.getExtras().get("URL").toString();
    DownloadManager.Request request=new DownloadManager.Request(Uri.parse(urls));
    request.setTitle("Notification").setDescription("song");
    request.allowScanningByMediaScanner();
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
    request.setDestinationInExternalFilesDir(getApplicationContext(),directory,"downloadedSong.mp3");
    FilePermission filePermission=new FilePermission(directory,"read");
    PermissionCollection collection=filePermission.newPermissionCollection();
    collection.add(filePermission);
    FilePermission filePermission1=new FilePermission(directory,"write");
    collection=filePermission1.newPermissionCollection();
    collection.add(filePermission1);
    DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
    manager.enqueue(request);
    return START_STICKY;

有人可以帮帮我吗?

-20 13:46:15.533 1435-1463/system_process E/KernelCpuSpeedReader: Failed to read cpu-freq
                                                                java.io.FileNotFoundException: /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state: open failed: ENOENT (No such file or directory)
                                                                    at libcore.io.IoBridge.open(IoBridge.java:452)
                                                                    at java.io.FileInputStream.<init>(FileInputStream.java:76)
                                                                    at java.io.FileInputStream.<init>(FileInputStream.java:103)
                                                                    at java.io.FileReader.<init>(FileReader.java:66)
                                                                    at com.android.internal.os.KernelCpuSpeedReader.readDelta(KernelCpuSpeedReader.java:49)
                                                                    at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8002)
                                                                    at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366)
                                                                    at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125)
                                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                    at android.os.Looper.loop(Looper.java:148)
                                                                    at android.os.HandlerThread.run(HandlerThread.java:61)
                                                                    at com.android.server.ServiceThread.run(ServiceThread.java:46)
                                                                 Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
                                                                    at libcore.io.Posix.open(Native Method)
                                                                    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
                                                                    at libcore.io.IoBridge.open(IoBridge.java:438)
                                                                    at java.io.FileInputStream.<init>(FileInputStream.java:76) 
                                                                    at java.io.FileInputStream.<init>(FileInputStream.java:103) 
                                                                    at java.io.FileReader.<init>(FileReader.java:66) 
                                                                    at com.android.internal.os.KernelCpuSpeedReader.readDelta(KernelCpuSpeedReader.java:49) 
                                                                    at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8002) 
                                                                    at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366) 
                                                                    at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125) 
                                                                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                    at android.os.Looper.loop(Looper.java:148) 
                                                                    at android.os.HandlerThread.run(HandlerThread.java:61) 
                                                                    at com.android.server.ServiceThread.run(ServiceThread.java:46) 
09-20 13:46:15.534 1435-1463/system_process E/KernelUidCpuTimeReader: Failed to read uid_cputime
                                                                  java.io.FileNotFoundException: /proc/uid_cputime/show_uid_stat: open failed: ENOENT (No such file or directory)
                                                                      at libcore.io.IoBridge.open(IoBridge.java:452)
                                                                      at java.io.FileInputStream.<init>(FileInputStream.java:76)
                                                                      at java.io.FileInputStream.<init>(FileInputStream.java:103)
                                                                      at java.io.FileReader.<init>(FileReader.java:66)
                                                                      at com.android.internal.os.KernelUidCpuTimeReader.readDelta(KernelUidCpuTimeReader.java:71)
                                                                      at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8031)
                                                                      at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366)
                                                                      at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125)
                                                                      at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                      at android.os.Looper.loop(Looper.java:148)
                                                                      at android.os.HandlerThread.run(HandlerThread.java:61)
                                                                      at com.android.server.ServiceThread.run(ServiceThread.java:46)
                                                                   Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
                                                                      at libcore.io.Posix.open(Native Method)
                                                                      at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
                                                                      at libcore.io.IoBridge.open(IoBridge.java:438)
                                                                      at java.io.FileInputStream.<init>(FileInputStream.java:76) 
                                                                      at java.io.FileInputStream.<init>(FileInputStream.java:103) 
                                                                      at java.io.FileReader.<init>(FileReader.java:66) 
                                                                      at com.android.internal.os.KernelUidCpuTimeReader.readDelta(KernelUidCpuTimeReader.java:71) 
                                                                      at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8031) 
                                                                      at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366) 
                                                                      at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125) 
                                                                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                      at android.os.Looper.loop(Looper.java:148) 
                                                                      at android.os.HandlerThread.run(HandlerThread.java:61) 
                                                                      at com.android.server.ServiceThread.run(ServiceThread.java:46) 
 09-20 13:46:15.534 1435-1463/system_process E/KernelWakelockReader: neither /proc/wakelocks nor /d/wakeup_sources exists

1 个答案:

答案 0 :(得分:1)

尝试添加:user