초보입니다.
C2DM서비스 구축중입니다.
로그에서는 registration_id값이 보여지는데요, 이 데이터를 메인액티비티에서 불러다 쓰려면 어떻게 해야하죠?
//메인액티비티
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setIntegerProperty("splashscreen", R.drawable.splash); //추가
//C2DM 등록ID 발급시작 (최초1회만실행하고 주석처리할것)
Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0)); // 어플리케이션ID
registrationIntent.putExtra("sender", EMAIL); //개발자ID
startService(registrationIntent); //서비스 시작(등록ID발급받기)
이하생략
//리시버 클래스
public class C2dm_BroadcastReceiver extends BroadcastReceiver{
/** Called when the activity is first created. */
public static String registration_id = "";
//static String reg_id = ""
static String c2dm_msg = "";
static String text1 = "11111";
@Override
public void onReceive(Context context, Intent intent) {
String registration_id = "222";
if (intent.getAction().equals("com.google.android.c2dm.intent.REGISTRATION")) {
handleRegistration(context, intent);
} else if (intent.getAction().equals("com.google.android.c2dm.intent.RECEIVE")) {
c2dm_msg = intent.getExtras().getString("msg");
System.out.println("c2dm_msg======>"+c2dm_msg);
Toast toast = Toast.makeText(context, "메시지 도착!\n"+c2dm_msg, Toast.LENGTH_SHORT );
toast.show();
}
}
public void handleRegistration(Context context, Intent intent) {
registration_id = intent.getStringExtra("registration_id"); //이 값을 메인에서 불러다 쓰고싶어요
System.out.println("registration_id====>"+registration_id);
Log.d("registration_id:", registration_id);
}
}
메인액티비티에서 registration_id = C2dm_BroadcastReceiver.registration_id; 이렇게 해도 못불러오더라고요, 방법을 잘모르겠네요.
어플리케이션 실행시 아이디받아올때까지 기다렸다가 registration_id 값 받아오면 어플 진행되게끔 하려고 합니다.
부탁드려요~~~ㅠ




심플하게 Preferences를 통해 저장하고 불러다 쓰시면됩니다.
최초 발급부분도 IF,문으로 최초 1회 실행후 Preferences에 저장된 값을 변경시켜버려서 값이 있으면 실행안하게 하면되고요.
관련부분 찾아보시면 금방 해결될거라 생각합니다.