gpt4 book ai didi

android - 用户重新安装适用于 Amazon SNS 的 Android 应用程序后,如何获取端点 ARN?

转载 作者:行者123 更新时间:2023-11-29 17:45:41 25 4
gpt4 key购买 nike

目前我正在使用 Amazon SNS 来管理 google GCM ,即推送通知。

问题是,我只能在这样创建端点后获取端点 ARN,

但是如何查看用户之前是否注册过呢?所以我不需要再创建一条记录

然后只使用那个旧记录。谢谢

下面的代码是用户打开(注册)/关闭(删除)亚马逊SNS的按钮

notify.setOnClickListener(new OnClickListener() {
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public void onClick(View v) {
if (prefs.getString("endpoint_arn", "").equals("")) {
new AsyncTask() {
@Override
protected Object doInBackground(final Object... params) {
try {
((Activity) ctx).runOnUiThread(new Runnable() {
public void run() {
if (!pDialog.isShowing())
pDialog.show();
}
});

String token = gcm.register(Constant.projectID);

CreatePlatformEndpointRequest per = new CreatePlatformEndpointRequest();
per.setToken(token);
per.setPlatformApplicationArn(Constant.platformARN);

CreatePlatformEndpointResult result = asnsc.createPlatformEndpoint(per);

editor.putString("endpoint_arn", result.getEndpointArn());
editor.commit();

((Activity) ctx).runOnUiThread(new Runnable() {
public void run() {
notify_txt.setText(ctx.getResources().getString(R.string.on));
if (pDialog.isShowing())
pDialog.dismiss();
}
});

} catch (final Exception e) {
((Activity) ctx).runOnUiThread(new Runnable() {
public void run() {
Log.d("test1","Registration Error:" + e.getMessage());
Toast.makeText(ctx, getResources().getString(R.string.error), Toast.LENGTH_LONG).show();
if (pDialog.isShowing())
pDialog.dismiss();
}
});
}
return true;
}
}.execute(null, null, null);

} else {

new AsyncTask() {
@Override
protected Object doInBackground(final Object... params) {
try {
((Activity) ctx).runOnUiThread(new Runnable() {
public void run() {
if (!pDialog.isShowing())
pDialog.show();
}
});

DeleteEndpointRequest dPer = new DeleteEndpointRequest();
dPer.setEndpointArn(prefs.getString("endpoint_arn", ""));
asnsc.deleteEndpoint(dPer);
gcm.unregister();
editor.remove("endpoint_arn").commit();

((Activity) ctx).runOnUiThread(new Runnable() {
public void run() {
notify_txt.setText(ctx.getResources().getString(R.string.off));
if (pDialog.isShowing())
pDialog.dismiss();
}
});

} catch (final Exception e) {
((Activity) ctx).runOnUiThread(new Runnable() {
public void run() {
Log.d("test1","Delete Error:" + e.getMessage());
Toast.makeText(ctx, getResources().getString(R.string.error), Toast.LENGTH_LONG).show();
if (pDialog.isShowing())
pDialog.dismiss();
}
});
}
return true;
}


}.execute(null, null, null);

}

}
});

最佳答案

据我所知,即使用户在同一台​​设备上重新安装应用程序,GCM 生成的设备 token 也是相同的。如果您已经使用 token 注册了设备,则 SNS 不会插入另一条记录,而是引用相同的记录。因此无需担心使用设备 token 再次将用户注册到 SNS。

关于android - 用户重新安装适用于 Amazon SNS 的 Android 应用程序后,如何获取端点 ARN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26985104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com