【发布时间】:2022-01-21 19:31:14
【问题描述】:
我的问题与How to send FCM Token ID to PHP server? 完全相同,但我没有足够的声誉在那里发表评论。 我花了两天时间,我变得疯狂。 我尝试了很多解决方案,但从未得到结果。 我发现的所有内容对于我的初学者水平(或我的英语水平)来说都太复杂了,或者被弃用了。
我想以最简单的方式将 POST Token 和 Device_ID(我知道如何获取两者)发送到我的服务器。没关系它是 JSON、GET 或 POST 方法,还是其他任何方法。 只是一个简单的方法来做到这一点。 我不想要任何 UI 或其他类似的东西。一种在生成时自动发送 FCM 令牌的方式。
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMsgService";
@Override
public void onNewToken(String token) {
String id = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
sendRegistrationToServer(token, id);
}
}
我只需要 sendRegistrationToServer()
非常感谢。
编辑 我终于让它工作了: DeviceService.java
public interface DeviceService {
@FormUrlEncoded
@POST("fcm_token_register.php")
Call<String> insertToken(@Field("token") String token, @Field("id") String id);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://*myserver*/")
.addConverterFactory(GsonConverterFactory.create())
.build();
}
调用它:
DeviceService service = DeviceService.retrofit.create(DeviceService.class);
Call<String> call = service.insertToken(token,id);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
Log.d(TAG, "OK : "+response.toString());
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Log.d(TAG, "Error : "+t.toString());
}
});
【问题讨论】:
标签: java android firebase-cloud-messaging