Androidのメーカー働いて送るが、受信側ブロードキャストが機能していない:3.0、Androidのマシュマロ放送が
SendBroadcast:
package com.example.android.sendbroadcast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onsendbroadcast(View view){
Log.v("Inside","OnCLICK");
Intent intent=new Intent();
Log.v("Intent","Created");
intent.setAction("com.example.android.sendbroadcast");
Log.v("Action","Set");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(intent);
Log.v("Broadcast","Sent");
}
}
放送を受信
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;
public class MyReceiver extends BroadcastReceiver {
public MyReceiver(){
}
@Override
public void onReceive(Context context, Intent intent) {
Log.v("Inside","Reciever");
Toast.makeText(context,"Broadcast Recieved",Toast.LENGTH_LONG).show();
}
}
アンドロイドたManifest.xml
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.example.android.sendbroadcast"></action>
</intent-filter>
</receiver>
</application>
を
上記の送信ブロードキャストが正しく実行されています。私もログを使ってチェックしました。しかし、受信ブロードキャストは実行されていません。トースト/ログメッセージは表示されません。理由は何ですか?
BroadcastReceiverにIntentFilterを登録していないことがわかりました –
なぜMainActivityはマニフェストに登録されていませんか? – Munir