Я следил за образцом игры Google Play для добавления PlusOneButton в приложение для Android, функция плюса и минуса работает до сих пор. Просто у меня возникла проблема, когда пользователь удалил элемент плюс через свой +1 сайт (он находится в профиле -> + 1) и вернитесь в приложение, плюс статус не будет обновлен в моем приложении, он останется в плюсе. (Похоже, Play Store изменит статус на un-plus). Я понятия не имею, как работает игровой магазин. Кто-нибудь может дать мне какое-нибудь предложение? А также есть ли способ реализовать функцию +1 так же, как и в игровом магазине? Не нужно отображать всплывающее диалоговое окно.Google Plus One Button Согласованность между Android и веб-сайтом
Ниже мой код:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.plustest);
int errorCode = GooglePlusUtil.checkGooglePlusApp(this);
if(errorCode != GooglePlusUtil.SUCCESS) {
GooglePlusUtil.getErrorDialog(errorCode, this, 0).show();
} else {
// The +1 button does not require scopes.
mPlusClient = new PlusClient.Builder(this, this, this)
.clearScopes()
.build();
}
/*
* The {@link PlusOneButton} can be configured in code, but in this example we
* have set the parameters in the layout.
*
* Example:
* mPlusOneSmallButton.setAnnotation(PlusOneButton.ANNOTATION_INLINE);
* mPlusOneSmallButton.setSize(PlusOneButton.SIZE_MEDIUM);
*/
mPlusOneSmallButton = (PlusOneButton) findViewById(R.id.plus_one_small_button);
mPlusOneMediumButton = (PlusOneButton) findViewById(R.id.plus_one_medium_button);
mPlusOneTallButton = (PlusOneButton) findViewById(R.id.plus_one_tall_button);
mPlusOneStandardButton = (PlusOneButton) findViewById(R.id.plus_one_standard_button);
mPlusOneStandardButtonWithAnnotation = (PlusOneButton) findViewById(
R.id.plus_one_standard_ann_button);
}
@Override
protected void onStart() {
super.onStart();
mPlusClient.connect();
}
@Override
protected void onResume() {
super.onResume();
// Refresh the state of the +1 button each time we receive focus.
mPlusOneSmallButton.initialize(mPlusClient, URL, PLUS_ONE_REQUEST_CODE);
mPlusOneMediumButton.initialize(mPlusClient, URL, this);
mPlusOneTallButton.initialize(mPlusClient, URL, PLUS_ONE_REQUEST_CODE);
mPlusOneStandardButton.initialize(mPlusClient, URL, PLUS_ONE_REQUEST_CODE);
mPlusOneStandardButtonWithAnnotation.initialize(mPlusClient, URL, PLUS_ONE_REQUEST_CODE);
}
@Override
protected void onStop() {
super.onStop();
mPlusClient.disconnect();
}
@Override
public void onClick(View v) {
}
@Override
public void onButtonClick(int id) {
}
@Override
public void onDashboardClick() {
}
@Override
public void onConnected(Bundle bundle) {
String name = mPlusClient.getAccountName();
}
@Override
public void onDisconnected() {
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
mConnectionResult = connectionResult;
if(!mPlusClient.isConnected()) {
try {
mConnectionResult.startResolutionForResult(this, PLUS_ONE_REQUEST_CODE);
} catch (IntentSender.SendIntentException e) {
mConnectionResult = null;
mPlusClient.connect();
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
if(requestCode == PLUS_ONE_REQUEST_CODE && resultCode == RESULT_OK) {
mConnectionResult = null;
mPlusClient.connect();
}
}
@Override
public void onPlusOneClick(Intent intent) {
if(!mPlusClient.isConnected()) {
mPlusClient.connect();
} else {
startActivityForResult(intent, 0);
}
}