android - 从远程服务器下载 APK。推送通知链接

标签 android unity-game-engine push-notification

我们已经用一个 Google 帐户配置了许多设备(超过 200 台)。两周前,这个帐户被黑了,我们不得不更改密码。

现在,为了解决这个问题,我们需要一个不要求用户更改密码的替代方案。 (很多用户都是基础用户,不知道怎么改)。

一个可能的替代方案是:

所有设备都有我们开发的具有“推送通知”功能的相同应用程序。

是否可以发送带有 URL 链接的通知,以从我公司的服务器下载应用程序的新版本?我看到了一个包含“click_url”参数的选项,但它需要在 AndroidManifest.xml 上实现自定义过滤器操作

这种替代方案需要在设备上安装的应用程序才能实现,而不是新版本的应用程序,因为我们没有任何方法来部署新版本的应用程序。

提前致谢。最好的问候。

最佳答案

部署应用程序的帐户不同,所以问题和我们已经恢复了帐户,但用户必须在他们的设备上更新 Google 帐户密码。所以,我们可以部署一个新版本,但它不能安装在设备上。我们有一个 PHP 后台,用于发送推送通知,所以我们想在推送内容中发送一个链接,如果用户触摸推送,它将从我们的公司服务器下载一个新版本。所有设备都启用了“未知来源”。

这是我们必须发送推送的代码:

private function sendPushAndroid($tituloNot, $mensajeNot) {
    // API access key from Google API's Console
    define( 'API_ACCESS_KEY', 'YOU_API_KEY' );


    // Capturo todos los id y los meto en un array
    // Intenta la inserción en la BBDD
    try {
        $conn = DbConfig::setUpDatabase ();
        $conn->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
        $conn->beginTransaction ();

        $stmt = $conn->prepare ( "SELECT deviceID FROM devices WHERE plataforma = 'android';" );
        $stmt->execute ();
        $result = $stmt->fetchAll ();

        foreach ( $result as $v ) {
            $registrationIds = array (
                    $v ["deviceID"]
            );
        }

        // var_dump($registrationIds);

        // Do not delete "big_picture_url
        // prep the bundle
        $msg = array (
                'title' => $tituloNot,
                'alert' => $mensajeNot,
                'json' => '{"big_picture_url": "",
                    "string_extra": "100000583627394",
                    "string_value": "value",
                    "string_key": "key",
                    "is_public": true,
                    "item_type_id": 4,
                    "numeric_extra": 0}'
        ); // string_extra?

        $fields = array (
                'registration_ids' => $registrationIds,
                'data' => $msg
        );

        $headers = array (
                'Authorization: key=' . API_ACCESS_KEY,
                'Content-Type: application/json'
        );

        $ch = curl_init ();
        curl_setopt ( $ch, CURLOPT_URL, 'https://android.googleapis.com/gcm/send' );
        curl_setopt ( $ch, CURLOPT_POST, true );
        curl_setopt ( $ch, CURLOPT_HTTPHEADER, $headers );
        // curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true ); //not needed, by default it returns true or false.
        curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
        curl_setopt ( $ch, CURLOPT_POSTFIELDS, json_encode ( $fields ) );
        $sent = curl_exec ( $ch );
        curl_close ( $ch );
    } catch ( Exception $e ) {
        // echo $e->getMessage();
    }
}

关于android - 从远程服务器下载 APK。推送通知链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43465475/

相关文章:

android - 模拟器在启动时卡住

c# - 通过 Unity 启动时,Visual Studio Code .NET 框架无法工作

unity-game-engine - 统一3D : Simple model make lag on mobile

python - 是否有一种从 python matplotlib 到 Unity 等游戏引擎的快速图形生产传输路线,可以避免保存到磁盘和加载?

ios - iOS 的 Urban Airship Rich 推送通知,用户未注册

ios - 在真实 ios 设备上测试时, ionic 推送通知错误 500

java - 如何在父自定义对象数组列表中获取自定义对象子列表中的单个项目位置?

java - 如何在 Android 中将颜色整数转换为十六进制字符串?

java - 如何从库项目中获取 AssetManager

ios - 当我的应用程序在 fg 上时,我的应用程序如何发送推送通知?