Android Wear 自定义通知未显示 activity
Android Wear custom notification not showing activity
我正在为 Android Wear 开发自定义通知,向上滑动通知时应显示自定义 activity。显示通知,甚至可穿戴功能(如背景和自定义尺寸)都可见,但是 activity 从未加载或显示。
此外,MainActivity
和 PlaybackNotificationActivity
都应该在创建时将消息写入日志。 MainActivity
写了消息,但后者没有。
可能是什么问题?
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new NotificationBuilder(this).showNotification();
Log.e("MainActivity", "Reached");
finish();
}
}
NotificationBuilder.java
public class NotificationBuilder {
private final Context mContext;
public NotificationBuilder(Context context) {
mContext = context;
}
public Notification buildNotification() {
Notification.Builder builder = new Notification.Builder(mContext)
.setContentTitle("Title")
.setContentText("Content text")
.setSmallIcon(R.mipmap.ic_launcher);
Intent playbackIntent = new Intent(mContext, PlaybackNotificationActivity.class);
PendingIntent playbackPendingIntent = PendingIntent.getActivity(
mContext, 0, playbackIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification.WearableExtender extender = new Notification.WearableExtender()
.setBackground(BitmapFactory.decodeResource(mContext.getResources(), R.mipmap.ic_launcher))
.setCustomSizePreset(Notification.WearableExtender.SIZE_MEDIUM)
.setDisplayIntent(playbackPendingIntent);
builder.extend(extender);
return builder.build();
}
public void showNotification() {
Notification notification = buildNotification();
NotificationManager manager = (NotificationManager)
mContext.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(1, notification);
}
}
PlaybackNotificationActivity.java
public class PlaybackNotificationActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_playback_notification);
Log.e("NotificationActivity", "Reached");
Toast.makeText(this, "Toast", Toast.LENGTH_SHORT).show();
}
}
事实证明,Android Wear 的模拟器是罪魁祸首,它在物理智能手表上完美运行,但在模拟器上却不行。
我正在为 Android Wear 开发自定义通知,向上滑动通知时应显示自定义 activity。显示通知,甚至可穿戴功能(如背景和自定义尺寸)都可见,但是 activity 从未加载或显示。
此外,MainActivity
和 PlaybackNotificationActivity
都应该在创建时将消息写入日志。 MainActivity
写了消息,但后者没有。
可能是什么问题?
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new NotificationBuilder(this).showNotification();
Log.e("MainActivity", "Reached");
finish();
}
}
NotificationBuilder.java
public class NotificationBuilder {
private final Context mContext;
public NotificationBuilder(Context context) {
mContext = context;
}
public Notification buildNotification() {
Notification.Builder builder = new Notification.Builder(mContext)
.setContentTitle("Title")
.setContentText("Content text")
.setSmallIcon(R.mipmap.ic_launcher);
Intent playbackIntent = new Intent(mContext, PlaybackNotificationActivity.class);
PendingIntent playbackPendingIntent = PendingIntent.getActivity(
mContext, 0, playbackIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification.WearableExtender extender = new Notification.WearableExtender()
.setBackground(BitmapFactory.decodeResource(mContext.getResources(), R.mipmap.ic_launcher))
.setCustomSizePreset(Notification.WearableExtender.SIZE_MEDIUM)
.setDisplayIntent(playbackPendingIntent);
builder.extend(extender);
return builder.build();
}
public void showNotification() {
Notification notification = buildNotification();
NotificationManager manager = (NotificationManager)
mContext.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(1, notification);
}
}
PlaybackNotificationActivity.java
public class PlaybackNotificationActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_playback_notification);
Log.e("NotificationActivity", "Reached");
Toast.makeText(this, "Toast", Toast.LENGTH_SHORT).show();
}
}
事实证明,Android Wear 的模拟器是罪魁祸首,它在物理智能手表上完美运行,但在模拟器上却不行。