在黑莓JDE 4.5.0状态栏添加通知图标 [英] Add a notification icon at the status bar in BlackBerry JDE 4.5.0

查看:192
本文介绍了在黑莓JDE 4.5.0状态栏添加通知图标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写在黑莓 JDE 4.5的Java应用程序将启动监听某个事件在启动时。我想显示在状态栏上的小图标。

I'm writing a Java application in BlackBerry JDE 4.5 that will start listening for some event at the start up. I want to display a small icon at the status bar.

我知道它在设定ApplicationIcon,ApplicationIndicator和ApplicationIndicatorRegistry类,但这些类是有黑莓JDE 4.5.0 API集?黑莓API的4.6.0版本的支持

I know its support in version 4.6.0 of the BlackBerry API set with ApplicationIcon, ApplicationIndicator and ApplicationIndicatorRegistry classes but which classes are there in BlackBerry JDE 4.5.0 API set?

更新

我觉得有些支持是有4.5.0为我使用黑莓珍珠8100与在任何传入邮件或电话状态栏显示通知图标OS v4.5.0.81。

I think some support is there for 4.5.0 as I'm using Blackberry Pearl 8100 with OS v4.5.0.81 which displays Notification Icons at status bar for any incoming messages or calls.

我做了Alternale入口点和放大器;主要CLDC应用程序像下面这篇文章,

I made the Alternale Entry point & Main CLDC app like this article below,

<一个href=\"http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800738/800901/How_To_-_Setup_an_alternate_entry_point_for_my_application.html?nodeid=800820&vernum=0\"相对=nofollow>如何 - 设置一个备用入口点,我的应用程序

我有一篇文章作为,

<一个href=\"http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800639/How_to_-_Make_a_running_UI_application_go_to_the_background_and_resume_in_the_foreground.html?nodeid=800545&vernum=0\"相对=nofollow>如何 - 一个正在运行的应用程序的用户界面让去后台和前台恢复

在其说,

备选入口会调用与传递中,不管应用程序是否运行参数的主要方法。

但在我的情况下,在main()当我点击APPICON当应用程序在后台运行是没有得到调用。

But in my case the main() is not getting called when I click on appIcon when the app is running in background.

它只更新APPICON&安培;的appName是$ P $在备选入口点pviously设置。

It only updates appIcon & appName which is previously set in Alternate Entry Point.

所以,我不是得到了控制进如果它不调用main()时updatedIcon点击?

So I m not getting where the control goes if its not calling main() when clicked on updatedIcon?

是任何人有此问题的任何想法?

Is anyone has any idea on this issue?

我更新了APPICON&放大器;程序的名字。

I updated the appIcon & appName.

现在我想的是当updatedIcon点击一个特定的屏幕应打开及放什么;当用户返回到主菜单的应用程序应该得到其原来的图标,应用程序名称和放大器;流应该通过main()的时候点击原来的应用程序图标

Now what I want is "When clicked on updatedIcon a particular screen should be opened & when the user goes back to Main Menu the app should get its original Icon, app name & the flow should go through main() when clicked on original app Icon"

当我在更新APPICON控制点击将进入主(),但不是调用的main()它说,

I was thinking when I click on updated appIcon the control will go to main() but instead of calling main() it says,

Starting AppName
AppName already running

&安培;它直接进入第一个画面。当我回到主菜单的应用程序已经更新图标和放大器;名称

& directly it goes to first screen. and when I come back to Main Menu the app has updated icon & name

那么如何得到它?

推荐答案

不幸的是这是不可能的。你可以做的是更新的应用程序图标。

Unfortunately it's not possible. What you can do is update application icon.

也有通知的替代方法:搜索
<一href=\"http://stackoverflow.com/questions/1465259/notification-service-for-blackberry-os-4-5-application\">Notification黑莓OS 4.5的应用程序服务

Also there are alternative ways of notification:
Notification Service for Blackberry OS 4.5 application

结果
后台运行的应用程序:


Background running application:

public class NotifIconSrvc extends Application {

 private int mCount = 0;
 private int mSize = 0;

 public NotifIconSrvc() {
  Timer timer = new Timer();
  timer.schedule(sendEventTask, 1000, 3000);
 }

 TimerTask sendEventTask = new TimerTask() {

  public void run() {
   // Post the GlobalEvent.
   // Long = ci.samples.45.notificon
   ApplicationManager.getApplicationManager().postGlobalEvent(
     0x5a9f7caa171ab7b8L, mCount++, mSize++);
  }
 };

 public static void main(String[] args) {
  NotifIconSrvc app = new NotifIconSrvc();
  app.enterEventDispatcher();
 }
}

主要用途:

public class NotifIconApp extends UiApplication 
    implements GlobalEventListener {    
 private Bitmap mIcon = Bitmap.getBitmapResource("icon.png");
 private Bitmap mIconActive = 
        Bitmap.getBitmapResource("icon_active.png");
 private Scr mScreen = new Scr();

 public NotifIconApp() {
  addGlobalEventListener(this);
  pushScreen(mScreen);
 }

 public static void main(String[] args) {
  NotifIconApp app = new NotifIconApp();
  app.enterEventDispatcher();
 }

 public void eventOccurred(long guid, int count, int size, 
        Object object0, Object object1) {
  if (0x5a9f7caa171ab7b8L == guid) {
                    Bitmap icon = getUpdateIconBitmap(mIcon, count, size);
   HomeScreen.updateIcon(icon);
   Bitmap rolloverIcon = 
                        getUpdateIconBitmap(mIconActive, count, size);
   HomeScreen.setRolloverIcon(rolloverIcon);
   mScreen.updateScreen(count, size);
  }
 }

 private Bitmap getUpdateIconBitmap(Bitmap bmp, int count, int size) {
  int width = bmp.getWidth();
  int height = bmp.getHeight();
  Bitmap iconBmp = new Bitmap(width, height);
  Graphics g = new Graphics(iconBmp);
  XYRect rect = new XYRect(0, 0, width, height);
  g.drawBitmap(rect, bmp, 0, 0);

  g.setFont(g.getFont().derive(Font.BOLD, 20, Ui.UNITS_px,
    Font.ANTIALIAS_STANDARD, Font.COLORED_OUTLINE_EFFECT));

  String text = Integer.toString(count);
  g.setColor(Color.BLACK);
  g.drawText(text, 0, 2);

  text = Integer.toString(size) + " Kb";
  g.setColor(Color.GREEN);
  g.drawText(text, 0, height - 22);
  return iconBmp;
 }
}

class Scr extends MainScreen {
 LabelField mMessages;
 String mLabelText = "message count: ";
 String mTitleText = "message counter";

 public Scr() {
  add(mMessages = new LabelField(mLabelText));
  setTitle(mTitleText);
 }

 void updateScreen(int count, int size) {
  StringBuffer sb = new StringBuffer(Integer.toString(count));
  sb.append("/");
  sb.append(Integer.toString(size));
  sb.append("Kb");
  String text = sb.toString();
  setTitle(mTitleText + "(" + text + ")");
  mMessages.setText(mLabelText + text);
 }

 protected void makeMenu(Menu menu, int instance) {
  super.makeMenu(menu, instance);
  menu.add(mMenuGoBG);
 }

 MenuItem mMenuGoBG = new MenuItem("go background", 0, 0) {
  public void run() {
   UiApplication.getUiApplication().requestBackground();
  }
 };
}

这篇关于在黑莓JDE 4.5.0状态栏添加通知图标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆