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

时间:2017-04-18 06:51:33

标签: android unity3d push-notification

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

现在,要解决此问题,我们需要一种不要求用户更改密码的替代方法。 (许多用户是基本用户,他们不知道如何更改它。)

可能的替代方案可能是:

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

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

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

提前谢谢你。最好的问候。

2 个答案:

答案 0 :(得分:1)

部署应用程序的帐户不同,所以问题还有,我们已恢复帐户,但用户必须在其设备上更新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();
    }
}

答案 1 :(得分:0)

你是对的,你可以通过推送通知来做到这一点。我们使用hockeyapp为测试人员和开发人员发布我们的私有版本。