阅读:1653回复:1

RK3399-11.0使用谷歌推送报错

楼主#
更多 发布于:2023-06-30 14:52
RK3399-11.0使用谷歌推送报错
Metadata: Google Play services missing or without correct permission.
从报错信息来看是没有Google Play services  但是Google Play services是有正常安装的。

对比RK3399-8.1谷歌推送是正常,初步判断是谷歌gms包的问题,RK回复也是谷歌包的问题,让我们自己去寻找合适的gms包。
最后没办法只能通过The Open GApps Project 这个open gapps下载,下载速度有点慢,压缩包也很大。 解压出来的文件非常多,看的眼花缭乱,最后我只选了PrebuiltGmsCorePi  Phonesky GoogleServicesFramework 这3个谷歌三件套来替换原来的,编译固件出来,重新测试FirebaseMessagingService 竟然就可以了。
谷歌推送具体的步骤网上很详细就不再赘述了,电脑登录谷歌推送官网,需要连VPN, 创建一个项目,填写相关信息,应用包名,创建完成后,APP写好获取推送的代码,第一次运行会生成一个token, 在服务端推送测试里面填入这个token,发送推送测试内容,App就会收到推送通知。
[url]http://190.lsal.cn/195/1329.gif?0728100424873[/url]
沙发#
发布于:2023-06-30 16:04
package com.example.firebasemessagingservice;


import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;


import androidx.annotation.NonNull;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;


import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;


import java.util.HashMap;
import java.util.Map;


public class MyFirebaseMessaging extends FirebaseMessagingService {
    private static final String TAG = "MyFirebaseMsgService";


    public MyFirebaseMessaging() {
        super();
        Task<String> token = FirebaseMessaging.getInstance().getToken();
        token.addOnCompleteListener(new OnCompleteListener<String>() {
            @Override
            public void onComplete(@NonNull Task<String> task) {
                if(task.isSuccessful()){
                    Log.d("FCM Token", task.getResult());
                }
            }
        });
    }


    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        // Handle FCM Message
        Log.e(TAG, remoteMessage.getFrom());


        // Check if message contains a data payload.
        if (remoteMessage.getData().size() > 0){
            Log.e(TAG, "Message data payload: " + remoteMessage.getData());


            handleNow();
        }


        // Check if message contains a notification payload.
        if (remoteMessage.getNotification() != null){
            Log.e(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());


            String getMessage = remoteMessage.getNotification().getBody();
            if(TextUtils.isEmpty(getMessage)) {
                Log.e(TAG, "ERR: Message data is empty...");
            } else {
                Map<String, String> mapMessage = new HashMap<>();
                assert getMessage != null;
                mapMessage.put("key", getMessage );


                // Broadcast Data Sending Test
                Intent intent = new Intent("alert_data");
                intent.putExtra("msg", getMessage);
                LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
            }
        }
    }
    private void handleNow(){
        Log.d(TAG, "Short lived task is done.");
    }
    @Override
    public void onNewToken(@NonNull String s) {
        super.onNewToken(s);
        Log.d("yu","token : " + s);
    }




}






    @Override
    protected void onStart() {
        super.onStart();
        //        GoogleApiAvailability.getInstance().makeGooglePlayServicesAvailable(this);


        Intent fcm = new Intent(getApplicationContext(), MyFirebaseMessaging.class);
        startService(fcm);


    }
[url]http://190.lsal.cn/195/1329.gif?0728100424873[/url]
游客

返回顶部