如何将GCM令牌从一个应用程序传递到android中的另一个应用程序?

时间:2016-04-04 10:52:00

标签: android google-cloud-messaging

请建议我解决上述问题。 意味着将GCM令牌从一个应用程序发送到另一个应用程序,但第一个应用程序安装到sysyem中,但希望将GCM令牌放入android中的第二个应用程序。

mRegistrationProgressBar = (ProgressBar) findViewById(R.id.registrationProgressBar);
mRegistrationBroadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        mRegistrationProgressBar.setVisibility(ProgressBar.GONE);
        SharedPreferences sharedPreferences =
                PreferenceManager.getDefaultSharedPreferences(context);
        boolean sentToken = sharedPreferences
                .getBoolean(QuickstartPreferences.SENT_TOKEN_TO_SERVER, false);
        if (sentToken) {
            mInformationTextView.setText(getString(R.string.gcm_send_message));
        } else {
            mInformationTextView.setText(getString(R.string.token_error_message));
        }
    }
};
mInformationTextView = (TextView) findViewById(R.id.informationTextView);

// Registering BroadcastReceiver
registerReceiver();

if (checkPlayServices()) {
    // Start IntentService to register this application with GCM.
    Intent intent = new Intent(this, RegistrationIntentService.class);
    startService(intent);
}

1 个答案:

答案 0 :(得分:2)

为什么要在两个应用程序之间共享gcm令牌? GCM令牌应该对每个应用程序都是唯一的吗?

如果您仍希望将数据从一个应用程序发送到另一个应用程序,请使用actvities中的intent-filer。

            final Intent intent = new Intent(Intent.ACTION_MAIN, null);

            intent.addCategory(Intent.CATEGORY_LAUNCHER);

            final ComponentName cn = new ComponentName(
                    "you.package.name",
                    "you.package.name.class");

            intent.setComponent(cn);
            intent.putExtra("token",token_value);

            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            startActivity(intent);