2014-12-02 5 views
0

안녕하세요 일 개 방송 테스트하지만 작품을 제작안드로이드 브로드 캐스트 리시버 오류

매니페스트 :

내 MainActivity에서
<receiver android:name=".BeaconsBroadcast" 
     android:exported="false"> 
     <intent-filter> 
      <action android:name="com.example.android.kontacktestbeacons.BeaconsBroadcast"/> 
     </intent-filter> 
    </receiver> 

:

protected void onStop() { 
     super.onStop(); 
     try{ 

      Log.e("ENTRO ","ENTRO"); 
      Intent i = new Intent(); 
      i.setAction("com.example.android.kontacktestbeacons.BeaconsBroadcast"); 

      startService(i); 
     }catch (Exception e){Log.e("ERROR","ERRR");} 

    } 

마일 방송 클래스 :

public class BeaconsBroadcast extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     Log.e("ENTRO ","EBTROPOOOOO RECIVE"); 
     Toast.makeText(context, "Se ha pulsado el botón.", Toast.LENGTH_SHORT) 
       .show(); 
    } 
} 

logcat에서 :

12-02 11:12:59.551 28588-28588/com.mydomain.myapplication W/ContextImpl﹕ Implicit intents with startService are not safe: Intent { act=com.example.android.kontacktestbeacons.BeaconsBroadcast } android.content.ContextWrapper.startService:494 com.example.android.kontacktestbeacons.MainActivity.onStop:101 android.app.Instrumentation.callActivityOnStop:1235 
12-02 11:12:59.552  927-2008/? W/ActivityManager﹕ Unable to start service Intent { act=com.example.android.kontacktestbeacons.BeaconsBroadcast } U=0: not found 

어디서 오류가 있습니까?

답변

3

BeaconsBroadcast를 BroadcastReceiver로 선언했지만 startService (i)를 사용하여 문제를 일으키는 경우 호출합니다.
BroadcastReceiver에 브로드 캐스트를 보내려면 sendBroadcast (i) 함수를 사용해야합니다. 당신은 안드로이드 설정 또한 이후 : 매니페스트

<receiver android:name="BeaconsBroadCast"> 
      <intent-filter> 
       <action android:name="com.tutorialspoint.CUSTOM_INTENT"> 
       </action> 
      </intent-filter> 
     </receiver> 

에 의해 미세

LocalBroadcastManager.getInstance .sendBroadcast (의도) (컨텍스트 컨텍스트)

+0

안녕하세요. this.sendBroadcast (i); no mark a error하지만 작업 없음 :/mi class BeaconsBroacast는 실행하지 않습니다 :/ – Luis

+0

LocalBroadcastManager.getInstance (this) .sendBroadcast (i)는 android : exported = "false"로 정의 했으므로 로컬 방송 만 사용합니다. –

+0

나는 오버 라이드를 가지고있다 protected void onStop() { super.onStop(); 시도 { Log.e ("ENTRO", "ENTRO"); 의도 i = 새로운 의도(); i.setAction ("com.example.android.kontacktestbeacons.BeaconsBroadcast"); LocalBroadcastManager.getInstance (this) .sendBroadcast (i); } 캐치 (예외 E) {Log.e ("ERROR", "ERRR");}} – Luis

0

안녕하세요 메신저를 사용하는 브로드 캐스트 리시버를 위해 = "false"를 수출 응용 프로그램 태그

관련 문제