앱을 개발 중입니다.이 코드를 사용하여 브로드 캐스트 리시버 클래스에서 Main Activity 클래스로 Google에서 보내는 등록 ID를 보내고 있습니다.브로드 캐스트 수신기 클래스의 데이터 추출
context.sendBroadcast(new Intent("com.example.sampletestproject.REGISTER_DEVICE"). putExtra("GCM_REG_ID",registrationId));
이제 주 활동 클래스에서이 등록 ID를 받고 싶습니다. 새로운 브로드 캐스팅 수신기 클래스를 만들지 만 가치가없는 것은이 작업을 수행하려고합니다. 주 활동 코드는입니다.
Button bt1,bt2;
BroadcastReceiver mReceiver;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
registerReceiver(mReceiver, new IntentFilter("com.example.sampletestproject.REGISTER_DEVICE"));
bt1=(Button) findViewById(R.id.button1);
bt2=(Button) findViewById(R.id.button2);
bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
//Log.d("msg", "Button clicked");
Toast.makeText(MainActivity.this, "Button clicked", Toast.LENGTH_LONG).show();
Intent registrationIntent=new Intent("com.google.android.c2dm.intent.REGISTER");
// Log.d("msg", "Intent created");
Toast.makeText(MainActivity.this, "Intent created", Toast.LENGTH_LONG).show();
registrationIntent.putExtra("app", PendingIntent.getBroadcast(v.getContext(),0,new Intent(),0));
registrationIntent.putExtra("senderid","908614649566");
startService(registrationIntent);
//Log.d("msg", "Intent Registered");
Toast.makeText(MainActivity.this, "Intent Register", Toast.LENGTH_LONG).show();
}
});
bt2.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
Intent unregintent=new Intent("com.google.android.c2dm.intent.UNREGISTER");
unregintent.putExtra("app", PendingIntent.getBroadcast(v.getContext(),0, new Intent(), 0));
startService(unregintent);
Toast.makeText(MainActivity.this, "Intent unregister", Toast.LENGTH_LONG).show();
}
});
mReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
//post registration id to server
Toast.makeText(MainActivity.this, "within new broadcast receiver in mainactivity", Toast.LENGTH_LONG).show();
Intent it=getIntent();
it.getExtras().get("GCM_REG_ID");
}
};
}
먼저이'mReceiver'는 다음에 등록 초기화 this example을 참조 별도로 수신기를 생성하고 안드로이드 매니페스트에 등록되어 ... –
인터페이스 콜백 manifestfile에서 내 의견 –
브로드 캐스트 리시버의 registor 더 유용한 것인가? – Sri