2015-09-07 1 views
0

Почему моя трансляция не принимается в этом коде? Я размещаю свой код ниже. Когда я запускаю это, я вижу намерение трансляции отправителя. Но на стороне приемника нет ответа. Я тестировал на леденец AVD.Почему моя трансляция не получена в этом коде?

  • Приемник Manifest
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="kr.co.company.mybroadcastreceiver" > 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <receiver android:name=".MyBroadcastReceiver"> 
      <intent-filter> 
       <action android:name="kr.co.company.START_WEB" /> 
      </intent-filter> 
     </receiver> 
    </application> 

</manifest> 
  • Receiver Код

    public class MyBroadcastReceiver extends BroadcastReceiver { 
        @Override 
        public void onReceive(Context context, Intent intent) { 
         Uri uri = Uri.parse("http://www.google.com"); 
         Intent intent1 = new Intent(Intent.ACTION_VIEW, uri); 
         intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
         context.startActivity(intent1); 
        } 
    } 
    
  • Код отправителя

    public class MyBroadcastSender extends Activity { 
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my_broadcast_sender); 
    
    Button click = (Button) findViewById(R.id.click); 
    click.setOnClickListener(new Button.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         Intent intent = new Intent(); 
         intent.setAction("kr.co.company.START_WEB"); 
         sendBroadcast(intent); 
        } 
    }); 
    } 
    } 
    

ответ

0

Если другое приложение посылает намерение, вы должны добавить это определение приемника в манифесте:

android:exported="true"

+0

Спасибо. Но это все еще не работает. – myoldgrandpa

Смежные вопросы