Android 如何将音频文件传递到广播接收器并将其作为警报播放

Android 如何将音频文件传递到广播接收器并将其作为警报播放,android,android-layout,Android,Android Layout,我有一个闹钟应用程序,我有一个文本视图,当我按下它时,它会将我重定向到音频文件夹,然后我可以选择一首歌曲并将其作为闹钟播放。当我选择它,然后点击我的设置报警按钮,它会崩溃多少秒后。错误指向广播接收器 这是我的设置报警活动: @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent

我有一个闹钟应用程序,我有一个文本视图,当我按下它时,它会将我重定向到音频文件夹,然后我可以选择一首歌曲并将其作为闹钟播放。当我选择它,然后点击我的设置报警按钮,它会崩溃多少秒后。错误指向广播接收器

这是我的设置报警活动:

@Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath()
                + "/Audio/");
        intent.setDataAndType(uri, "audio/*");
        startActivityForResult(intent, 1);

    }

    @Override
    protected void onActivityResult(int requestCode,int resultCode,Intent data){

        if(requestCode == 1){

            if(resultCode == RESULT_OK){

                //the selected audio.
                Uri uri = data.getData();
                Intent n = new Intent(this, AlarmReceiver.class);
                n.putExtra("song", uri.toString());

            }
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
Logcat

08-21 04:05:35.011 1553-1571/system_process E/BluetoothAdapter: Bluetooth binder is null
08-21 04:05:35.012 1553-1571/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) 
08-21 04:05:35.012 1553-1571/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) 
08-21 04:05:35.012 1553-1571/system_process E/KernelWakelockReader: neither /proc/wakelocks nor /d/wakeup_sources exists
08-21 04:05:35.017 1553-1571/system_process W/BatteryStatsImpl: Couldn't get kernel wake lock stats
08-21 04:05:35.086 2268-10915/com.google.android.gms D/DropBoxEntryAddedChimeraService: User is not opted-in to Usage & Diagnostics.
08-21 04:05:54.610 1553-1575/system_process W/ProcessCpuTracker: Skipping unknown process pid 11191
08-21 04:05:54.610 1553-1575/system_process W/ProcessCpuTracker: Skipping unknown process pid 11196
08-21 04:06:00.026 1553-1567/system_process I/ProcessStatsService: Prepared write state in 1ms
08-21 04:06:00.052 1553-1565/system_process W/BroadcastQueue: Skipping deliver [foreground] BroadcastRecord{2cfd4a7 u-1 android.intent.action.TIME_TICK} to ReceiverList{53b0aef 10154 myapps.wycoco.com.alarmapp/10064/u0 remote:8835bce}: process crashing
08-21 04:06:47.744 2268-11950/com.google.android.gms I/EventLogChimeraService: Aggregate from 1471750607524 (log), 1471750607524 (data)
08-21 04:06:47.857 2268-11954/com.google.android.gms D/DropBoxEntryAddedChimeraService: User is not opted-in to Usage & Diagnostics.
08-21 04:07:00.053 1553-1712/system_process W/BroadcastQueue: Skipping deliver [foreg
08-21 04:05:35.011 1553-1571/系统\进程E/蓝牙适配器:蓝牙绑定器为空
08-21 04:05:35.012 1553-1571/系统\进程E/内核CPUSpeedReader:无法读取cpu频率
java.io.FileNotFoundException:/sys/devices/system/cpu/cpu0/cpufreq/stats/time\u处于以下状态:open failed:enoint(无此类文件或目录)
在libcore.io.IoBridge.open中(IoBridge.java:452)
位于java.io.FileInputStream。(FileInputStream.java:76)
位于java.io.FileInputStream。(FileInputStream.java:103)
位于java.io.FileReader。(FileReader.java:66)
位于com.android.internal.os.KernelCpuSpeedReader.readDelta(KernelCpuSpeedReader.java:49)
位于com.android.internal.os.batterystatsiml.updatecputimelock(batterystatsiml.java:8002)
位于com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366)
在com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:148)
运行(HandlerThread.java:61)
在com.android.server.ServiceThread.run上(ServiceThread.java:46)
原因:android.system.ErrnoException:open失败:enoint(没有这样的文件或目录)
在libcore.io.Posix.open中(本机方法)
在libcore.io.BlockGuardOs.open上(BlockGuardOs.java:186)
在libcore.io.IoBridge.open中(IoBridge.java:438)
位于java.io.FileInputStream。(FileInputStream.java:76)
位于java.io.FileInputStream。(FileInputStream.java:103)
位于java.io.FileReader。(FileReader.java:66)
位于com.android.internal.os.KernelCpuSpeedReader.readDelta(KernelCpuSpeedReader.java:49)
位于com.android.internal.os.batterystatsiml.updatecputimelock(batterystatsiml.java:8002)
位于com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366)
在com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:148)
运行(HandlerThread.java:61)
在com.android.server.ServiceThread.run上(ServiceThread.java:46)
08-21 04:05:35.012 1553-1571/系统进程E/KernelUidCpuTimeReader:无法读取uid\U cputime
java.io.FileNotFoundException:/proc/uid\u cputime/show\u uid\u stat:open failed:enoint(没有这样的文件或目录)
在libcore.io.IoBridge.open中(IoBridge.java:452)
位于java.io.FileInputStream。(FileInputStream.java:76)
位于java.io.FileInputStream。(FileInputStream.java:103)
位于java.io.FileReader。(FileReader.java:66)
位于com.android.internal.os.KernelUidCpuTimeReader.readDelta(KernelUidCpuTimeReader.java:71)
位于com.android.internal.os.batterystatsiml.updatecputimelock(batterystatsiml.java:8031)
位于com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366)
在com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:148)
运行(HandlerThread.java:61)
在com.android.server.ServiceThread.run上(ServiceThread.java:46)
原因:android.system.ErrnoException:open失败:enoint(没有这样的文件或目录)
在libcore.io.Posix.open中(本机方法)
在libcore.io.BlockGuardOs.open上(BlockGuardOs.java:186)
在libcore.io.IoBridge.open中(IoBridge.java:438)
位于java.io.FileInputStream。(FileInputStream.java:76)
位于java.io.FileInputStream。(FileInputStream.java:103)
位于java.io.FileReader。(FileReader.java:66)
位于com.android.internal.os.KernelUidCpuTimeReader.readDelta(KernelUidCpuTimeReader.java:71)
位于com.android.internal.os.batterystatsiml.updatecputimelock(batterystatsiml.java:8031)
位于com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366)
在com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:148)
运行(HandlerThread.java:61)
在com.android.server.ServiceThread.run上(ServiceThread.java:46)
08-21 04:05:35.012 1553-1571/system_进程E/KernelWakelockReader:不存在/proc/wakelocks或/d/wakeup_源
08-21 04:05:35.017 1553-1571/带BatteryStatSimp的系统进程:无法获取内核唤醒锁统计信息
08-21 04:05:35.086 2268-10915/com.google.android.gms D/DropBoxEntryAddedChimeraService:用户未选择使用和诊断。
08-21 04:05:54.610 1553-1575/带ProcessCpuTracker的系统进程:跳过未知进程pid 11191
08-21 04:05:54.610 1553-1575/带ProcessCpuTracker的系统进程:跳过未知进程pid 11196
08-21 04:06:00.026 1553-1567/system_进程I/ProcessStatsService:准备好的写入状态(1ms)
08-21 04:06:00.052 1553-1565/system_process W/BroadcastQueue:跳过传递[前台]广播记录{2cfd4a7 u-1 android.intent.action.TIME_TICK}到接收者列表{53b0aef 10154 myapps.wycoco.com.alarmapp/10064/u0 remote:8835bce}:进程崩溃
08-21 04:06:47.744 2268-11950/com.google.android.gms I/eventlogchimerservice:1471750607524(日志)和1471750607524(数据)的聚合
08-21 04:06:47.857 2268-11954/com.google.android.gms D/DropBoxEntryAddedChimeraService:用户未选择使用和诊断。
08-2
08-21 04:05:35.011 1553-1571/system_process E/BluetoothAdapter: Bluetooth binder is null
08-21 04:05:35.012 1553-1571/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) 
08-21 04:05:35.012 1553-1571/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) 
08-21 04:05:35.012 1553-1571/system_process E/KernelWakelockReader: neither /proc/wakelocks nor /d/wakeup_sources exists
08-21 04:05:35.017 1553-1571/system_process W/BatteryStatsImpl: Couldn't get kernel wake lock stats
08-21 04:05:35.086 2268-10915/com.google.android.gms D/DropBoxEntryAddedChimeraService: User is not opted-in to Usage & Diagnostics.
08-21 04:05:54.610 1553-1575/system_process W/ProcessCpuTracker: Skipping unknown process pid 11191
08-21 04:05:54.610 1553-1575/system_process W/ProcessCpuTracker: Skipping unknown process pid 11196
08-21 04:06:00.026 1553-1567/system_process I/ProcessStatsService: Prepared write state in 1ms
08-21 04:06:00.052 1553-1565/system_process W/BroadcastQueue: Skipping deliver [foreground] BroadcastRecord{2cfd4a7 u-1 android.intent.action.TIME_TICK} to ReceiverList{53b0aef 10154 myapps.wycoco.com.alarmapp/10064/u0 remote:8835bce}: process crashing
08-21 04:06:47.744 2268-11950/com.google.android.gms I/EventLogChimeraService: Aggregate from 1471750607524 (log), 1471750607524 (data)
08-21 04:06:47.857 2268-11954/com.google.android.gms D/DropBoxEntryAddedChimeraService: User is not opted-in to Usage & Diagnostics.
08-21 04:07:00.053 1553-1712/system_process W/BroadcastQueue: Skipping deliver [foreg
 @Override
    public void onReceive(Context context, Intent intent)
    {
     AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            MediaPlayer player = MediaPlayer.create(getApplicationContext(), RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
            try {
                player.setVolume((float) (audio.getStreamVolume(AudioManager.STREAM_NOTIFICATION) / 7.0),
                        (float) (audio.getStreamVolume(AudioManager.STREAM_NOTIFICATION) / 7.0));
            } catch (Exception e) {
                e.printStackTrace();
            }

            player.start();
    }
Uri songUri;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (data != null) {
        songUri = data.getData();
    }
}
intent.putExtra("song",songUri);
try{
    mp = MediaPlayer.create(context, (Uri)intent.getParcelableExtra("song"));
}catch(NullPointerException e) {
    mp = MediaPlayer.create(context, R.raw.closer);
}