我们已经用一个 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/