Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我的广播接收器没有接收到信号_Android_Broadcastreceiver - Fatal编程技术网

Android 我的广播接收器没有接收到信号

Android 我的广播接收器没有接收到信号,android,broadcastreceiver,Android,Broadcastreceiver,我尝试了一整天,但我的广播接收器在按下媒体按钮时没有收到任何信息。 我正在粘贴下面的代码: 从我的服务的onCreate()中: mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); context = getApplicationContext(); am = (

我尝试了一整天,但我的广播接收器在按下媒体按钮时没有收到任何信息。
我正在粘贴下面的代码:
从我的服务的onCreate()中:

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
context = getApplicationContext();
am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
从onHandleIntent方法:

protected void onHandleIntent(Intent intent) {  
    am.registerMediaButtonEventReceiver(new ComponentName(this, RemoteReceiver.class));
while(check){
    try{
    switch(ac_time){
    case 15 : Thread.sleep(15000);
              break;
    case 30:  Thread.sleep(30000);
              break;
    case 60 : Thread.sleep(60000);
              break;
    case 120: Thread.sleep(120000);
              break;
    case 300: Thread.sleep(300000);
              break;          
             }
    }
    catch (InterruptedException e) {
        e.printStackTrace();
        }
    if(!pm.isScreenOn())
    break;
}
Log.d("service1", "Screen is now off!");
if(check)
mSensorManager.registerListener(Myservice.this, mProximity, SensorManager.SENSOR_DELAY_NORMAL);
while(check){
    Log.d("service1", "Maximum Value: " +mProximity.getMaximumRange());
    try {
        Thread.sleep(10000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
}
@Override
public void onSensorChanged(SensorEvent event) {
    Log.d("service1", "Current value is:" +event.values[0] );
}
来自onDestroy()

从舱单:

<receiver android:name=".RemoteReceiver"
          android:enabled="true">
<intent-filter>
    <action android:name="android.intent.action.MEDIA_BUTTON"/>
</intent-filter>
</receiver>

来自接收器类:
公共类RemoteReceiver扩展了BroadcastReceiver{
公共void onReceive(上下文、意图){
日志d(“服务1”,“接收广播”);
if(Intent.ACTION\u MEDIA\u BUTTON.equals(Intent.getAction())){
KeyEvent事件=(KeyEvent)intent.getParcelableExtra(intent.EXTRA\u KEY\u事件);
if(event.getKeyCode()==KeyEvent.KEYCODE\u VOLUME\u UP){
Log.d(“服务1”,“音量增大”);
上下文。停止服务(意图);
}
if(event.getKeyCode()==KeyEvent.KEYCODE\u音量下降){
Log.d(“服务1”,“音量下降”);
上下文。停止服务(意图);
}
if(event.getKeyCode()==KeyEvent.KEYCODE\u电源){
日志d(“服务1”,“电源按下”);
上下文。停止服务(意图);
}
}

当按下音量按钮和激活服务后,当接近传感器发出良好的日志时,我没有从receiver class获得任何日志。
需要帮忙吗? 更新:
我还发布了日志,以防万一:
08-01 22:36:26.022:D/service1(14219):已调用Startservice
08-01 22:36:26.095:D/NotificationPresenter(1559):发布通知:package=com.saurabh.carefreetravel id=0 user\u id=0 tag=null post\u time=1406912786071是有效的\u global=false是有效的\u local=true
08-01 22:36:26.135:I/MediaFocusControl(1030):用于PendingEvent{425e7c00:PendingEventRecord{422fa478 com.saurabh.Myfirstapp broadcastIntent}的远程控制注册表mediabuttonIntent()
08-01 22:36:29.507:I/ActivityManager(1030):杀死13303:de.robv.android.xposed.installer/u0a122(形容词15):空
08-01 22:36:30.260:E/QCALOG(658):[MessageQ]ProcessNewMessage:[XT-CS]未知的交付目标[OS代理]
08-01 22:36:30.261:E/QCALOG(658):[MessageQ]ProcessNewMessage:[XTWWAN-PE]未知传递目标[OS代理]
08-01 22:36:30.261:E/QCALOG(658):[MessageQ]ProcessNewMessage:[XTWiFi PE]未知传递目标[OS代理]
08-01 22:36:30.604:D/警报服务(14353):开始更新警报通知
08-01 22:36:30.619:D/AlertService(14353):无已触发或计划的警报
08-01 22:36:30.632:D/AlertService(14353):使用AlarmScheduler计划下一次报警。SeventMinderReceived:null
08-01 22:36:30.644:D/AlarmScheduler(14353):1周内开始的事件的查询结果计数:1
08-01 22:36:30.658:D/AlarmScheduler(14353):在1406946601000(2014年8月2日星期六上午8:00)为事件1安排警报提醒应用程序广播
08-01 22:36:30.677:I/ActivityManager(1030):杀死13397:com.ceco.kitkat.gravitybox/u0a123(形容词15):空
08-01 22:36:30.738:D/AudioPolicyManager(292):getOutput()设备2,流2,采样0,格式0,通道掩码3,标志0
08-01 22:36:30.738:D/AudioPolicyManager(292):getOutput()返回输出2
08-01 22:36:30.738:D/AudioPolicyManager(292):getOutput()设备2,流2,采样0,格式0,通道掩码3,标志0
08-01 22:36:30.739:D/AudioPolicyManager(292):getOutput()返回输出2
08-01 22:36:30.739:D/AudioPolicyManager(292):getOutput()设备2,流2,采样48000,格式1,通道掩码1,标志4
08-01 22:36:30.739:D/AudioPolicyManager(292):getOutput()返回输出3
08-01 22:36:30.741:D/AudioFlinger(292):启动(4097),调用pid 1030会话78
08-01 22:36:30.741:D/AudioFlinger(292):?=>线程0xb8128f40上的活动(4097)
08-01 22:36:30.748:D/音频硬件主(292):开始输出流:输入:流(0xb811ed70)用例(1:低延迟播放)设备(0x2)
08-01 22:36:30.748:E/audio\u hw\u primary(292):voice\u extn\u compress\u voip\u处于活动状态:未定义compress\u voip\u ENABLED
08-01 22:36:30.748:E/msm8974_平台(292):语音_extn_compress_voip_处于活动状态:未定义压缩_voip_ENABLED
08-01 22:36:30.748:D/音频硬件主设备(292):选择设备:输出设备(2:扬声器)输入设备(0:)
08-01 22:36:30.748:D/硬件信息(292):硬件信息附加硬件类型:设备名称=扬声器
08-01 22:36:30.751:D/音频硬件主(292):选择设备:完成
08-01 22:36:32.843:D/AudioFlinger(292):启动(4097),调用pid 1030会话78
08-01 22:36:32.843:D/AudioFlinger(292):?=>线程0xb8128f40上的活动(4097)
08-01 22:36:35.260:E/QCALOG(658):[MessageQ]ProcessNewMessage:[XT-CS]未知传递目标[OS代理]
08-01 22:36:35.261:E/QCALOG(658):[MessageQ]ProcessNewMessage:[XTWWAN-PE]未知传递目标[OS代理]
08-01 22:36:35.261:E/QCALOG(658):[MessageQ]ProcessNewMessage:[XTWiFi PE]未知的交付目标[OS代理]
08-01 22:36:35.923:D/音频硬件主(292):输出待机:输入:流(0xb811ed70)用例(1:低延迟播放)
08-01 22:36:35.954:D/硬件信息(292):硬件信息附加硬件类型:设备名称=扬声器
:E/():设备已断开连接

您的服务是否继承自
IntentService
?此外,您是否在logcat中看到任何其他错误或相关消息?请确保您没有筛选logcat,否则可能会错过一些重要信息!1.是的,我将IntentService用作超类2。我尝试了logcat,但没有任何与媒体按钮相关的错误。
<receiver android:name=".RemoteReceiver"
          android:enabled="true">
<intent-filter>
    <action android:name="android.intent.action.MEDIA_BUTTON"/>
</intent-filter>
</receiver>