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);
}