我看不到Android Wear Emulator的背景

时间:2017-11-03 14:49:36

标签: android android-studio android-emulator wear-os wearables

我的问题是因为我无法在Android Wear模拟器中看到背景,我使用经过验证的图片声明了.setBackgroung,但是当我运行应用程序并向我发送通知时,后台没有显示。

任何帮助?

public class NotificationService extends FirebaseMessagingService {
    public static final String TAG = "FIREBASE";
    public static final int NOTIFICATION_ID = 001;
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        //super.onMessageReceived(remoteMessage);
        Log.d(TAG, "From: " + remoteMessage.getFrom());
        Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
        enviarNotificacion(remoteMessage);
    }

    public void enviarNotificacion(RemoteMessage remoteMessage){
        Intent i = new Intent();
        i.setAction("TOQUE_ANIMAL");
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
        Uri sonido = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

        NotificationCompat.Action action =
                new NotificationCompat.Action.Builder(R.drawable.ic_full_poke,
                        getString(R.string.texto_accion_toque), pendingIntent)
                .build();

        NotificationCompat.WearableExtender wearableExtender =
                new NotificationCompat.WearableExtender()
                .setHintHideIcon(true)
                .setBackground(BitmapFactory.decodeResource(getResources(),
                        R.drawable.bk_androidwear_notification))
                .setGravity(Gravity.CENTER_VERTICAL);

        NotificationCompat.Builder notificacion = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.notificacion)
                .setContentTitle("Notificacion")
                .setContentText(remoteMessage.getNotification().getBody())
                .setAutoCancel(true)
                .setSound(sonido)
                .setContentIntent(pendingIntent)
                .extend(wearableExtender.addAction(action))
                //.addAction(R.drawable.ic_full_poke, getString(R.string.texto_accion_toque), pendingIntent)
                ;

        NotificationManagerCompat notificationManager =
                NotificationManagerCompat.from(this);
        notificationManager.notify(NOTIFICATION_ID, notificacion.build());
    }
}

1 个答案:

答案 0 :(得分:0)

您可以参考此SO post。尝试使用setBackground(Bitmap)中的WearableExtender方法而不是setLargeIcon(Bitmap)。您还可以查看此tutorial有关如何为Android Wear创建表盘的信息。

为Android Wear通知设置背景图片的其他参考:Background image for android wear notification

  

目前方形表盘的分辨率为280x280,而圆形表盘的分辨率为320x320(虽然其中一些会明显被切断)。

     

然而,Android Wear默认为较大的图像实现了一种视差滚动,因此它可以非常轻松地处理更大的图像,甚至建议您这样做(see this previous answer)。所以你真的不应该担心图像的大小,除非你试图创建一个具有特定交互区域的静态全屏图像作为自定义UI元素的替代品(你可以做,我可能会添加)虽然Google建议您在手表上每个屏幕只有一个交互区域,以保持简单。)

     

如果你想看到一个用于视差滚动背景的多个图像的好例子,我建议你查看GridViewPager示例项目,该项目可以在API级别20的可穿戴子文件夹的SDK示例中找到。 / p>

希望这有帮助!