如何通过此代码添加图标?

时间:2017-01-20 18:18:51

标签: php android push-notification

我正在为Android开发推送通知系统,但我不知道如何更改icone.I' m使用php和Firebase + Onesignal进行开发。 我正在为Android开发推送通知系统,但我不知道如何更改icone。我正在使用php和Firebase + Onesignal进行开发。

<?php
if(isset($_POST['titulo'])){

    function sendMessage(){
        $content = array(
            "en" => $_POST['mensagem']
        );

        $headings = array("en" => $_POST['titulo']);
        $fields = array(
            'app_id' => "Your APP_ID",
            'included_segments' => array('All'),
            'contents' => $content,
            'headings' => $headings,
        );


        $fields = json_encode($fields);

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json',
            'Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXX'));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_HEADER, FALSE);
        curl_setopt($ch, CURLOPT_POST, TRUE);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

        $response = curl_exec($ch);
        curl_close($ch);

        return $response;

    }

    $response = sendMessage();
    $return["allresponses"] = $response;
    $return = json_encode( $return);

}
print_r($response);
if(isset($response) && !empty($response)){
    header('Location: push.php?msg=ok');
}
?>

1 个答案:

答案 0 :(得分:0)

你不能用PHP做到这一点。 在PHP中,您可以将附加参数传递给通知,然后当您在android中读取通知参数时,您可以根据参数值切换图标。

要在Android上设置通知图标,您可以使用以下代码:

// read param from bundle extras
int iconType = Integer.parseInt(extras.getString(GcmConstant.BUNDLE_ICON_TYPE, "0"))

// get icon resource id
// int smallIcon = android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP ? R.drawable.notify_negative : R.drawable.notify_positive;

// get icon resource id
int smallIcon = iconType == GcmConstant.ICON_TYPE_1 ? R.drawable.icon_type_one : R.drawable.icon_type_two;

// set notification builder
NotificationCompat.Builder mBuilder =
    new NotificationCompat.Builder(this)
        .setSmallIcon(smallIcon)
        .setLargeIcon(BitmapFactory.decodeResource(this.getResources(), R.mipmap.ic_launcher))
        .setContentTitle(getString(R.string.notification_content_title))
        .setStyle(new NotificationCompat.BigTextStyle().bigText(bodyMessage))
        .setContentText(bodyMessage).setSound(alarmSound);

您应将此代码放入扩展onMessageReceived的类GcmListenerService方法中。

在上一个示例中,您可以找到根据Android API版本设置不同图标所需的注释代码,因为从Lollipop开始您应该使用负图标。 More info here