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>