#android
#Android
Вопрос:
//HERE ARE THE CODE
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(getApplicationContext(), "received message in activity..!", Toast.LENGTH_SHORT).show();
Button b=(Button)findViewById(R.id.button);
b.setText("received");
}
};
private static final String ACTION_STRING_ACTIVITY = "ToActivity";
private Receiver activityReceiver;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activityReceiver=new Receiver();
if (activityReceiver != null) {
IntentFilter intentFilter = new IntentFilter(ACTION_STRING_ACTIVITY);
intentFilter.addDataScheme("file");
registerReceiver(activityReceiver, intentFilter);
}
findViewById(R.id.button).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Button b=(Button)findViewById(R.id.button);
sendBroadcast();
Log.d("SampleActivity", "broadcast sent");
}
});
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d("Service", "onDestroy");
unregisterReceiver(activityReceiver);
}
private void sendBroadcast() {
Intent new_intent = new Intent();
new_intent.setAction(ACTION_STRING_ACTIVITY);
new_intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(new_intent);
Button b=(Button)findViewById(R.id.button);
}
}
Я тестирую Android BroadcastReceiver, но я работаю над этим целый день
, но все еще не могу заставить его работать. Я определил приемник в своей MainActivity, когда я нажимаю
кнопку, он должен получать широковещательную передачу и устанавливать текст на кнопке на
«получено».
Ответ №1:
Убедитесь, что в вашем манифесте есть следующее:
<receiver
android:name="com.<your_package>.MainActivity.Receiver"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="com.<your_package>.ToActivity" />
</intent-filter>
</receiver>
Хорошо, я понял. Я удалил «IntentFilter.addDataScheme («file»);», тогда это работает
Но я не зарегистрировал приемник в коде манифеста.
большое вам спасибо