문제

Rim Blackberry OS 4.6+에는 New 기능이 있습니다. 통합 응용 프로그램을 사용하여 사용자에게 빠르고 유익한 정보를 제공합니다. DEATLER- 부재중 전화, 메시지 - 읽지 않은 메시지 등.

Dead Imageshack 링크를 제거했습니다

알림 아이콘 가능성 :

  • 놓친 이벤트
  • RSS 업데이트
  • 객체 상태 (예 : 날씨/앱 활동/GPS 신호 강도)
  • 다른

이 기능에 대한 Howto Guide를 게시하고 싶습니다.

도움이 되었습니까?

해결책

ApplicationIndicator 클래스

알림 아이콘을 추가/수정/제거하려면 사용할 수 있습니다. ApplicationIndicator 수업:

아이콘과 선택적 숫자 값으로 구성된 응용 프로그램 표시기를 나타냅니다.
아이콘은 새로운 메일 카운터, 캘린더 알림, 부재중 전화 카운터, 보안 상태 등과 같은 다른 사람들과 함께 표시기 영역에 배치됩니다.

  • 응용 프로그램은 하나의 표시기 만 등록 할 수 있으며 전화가 시작될 때마다 등록해야합니다.
  • 전화 재시작시 모든 표시기가 지워집니다.
  • 상태 바에 공간이 없으면 표시기가 표시되지 않을 수 있습니다.
  • 표시기 치수는 현재 테마 및 전화 화면 크기에 따라 다릅니다.
  • 아이콘 크기는 10x10에서 24x24까지 다양합니다.
  • 표시기가 큰 아이콘으로 초기화되면 예외가 발생합니다.
  • 표시기는 일반적으로 카운터 역할을하는 선택적 숫자 값을 가질 수 있습니다.
  • 값은 음수, 0 또는 양수 일 수 있습니다.
  • 표시기가 카운터로 사용되면 값이 0과 같을 때 숨기는 것이 좋습니다.
  • 표시 값이 너무 커지면 '99+'또는'999+ '가 표시됩니다.

알림 아이콘을 추가합니다

이를 위해 인스턴스를 작성해야합니다 응용 프로그램:

응용 프로그램 아이콘 클래스는 응용 프로그램 표시기 및 응용 프로그램 메시지와 함께 사용됩니다.
이미지와 그림 속성을 배출합니다.

EncodedImage mImage = EncodedImage.getEncodedImageResource("indicator_icon.png");
ApplicationIcon mIcon = new ApplicationIcon(mImage);

그런 다음 ApplicationIndicator를 등록해야합니다 ApplicationIndicatorregistry:

ApplicationIndicatorregistry.register (, 아이콘 적으로, 보이는)
- 표시기 영역에 표시 할 아이콘
아이콘 적으로 - 표시기가 아이콘 표현 만 있어야하고 값이 없어야하는지 지정합니다.
보이는 - 초기에 표시기가 보이아야하는지 여부를 지정합니다

ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
ApplicationIndicator indicator = reg.register(mIcon, false, true);

표시기 아이콘과 값을 수정하십시오

아이콘을 수정하려면 사용하십시오 ApplicationIndicator.seticon 방법:

ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
ApplicationIndicator appIndicator = reg.getApplicationIndicator();
appIndicator.setIcon(icon);

숫자 값을 수정하려면 사용하십시오 ApplicationIndicator.setValue 방법:

ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
ApplicationIndicator appIndicator = reg.getApplicationIndicator();
appIndicator.setValue(value);
  • 매우 큰 값이 제공되면 표시기에 '99+'또는'999+ '가 표시됩니다.

표시기를 숨기거나 표시하려면 사용하십시오 ApplicationIndicator.set -Visible

등록되지 않은 ApplicationIndicator

아마도 당신은 당신의 앱 표시기가 상태 바에 머무르는 것을 원하지 않을 것입니다. ApplicationIndicatorRegistry.unregister () 앱 닫기에.

샘플 응용 프로그램

아이콘 :

죽은 Imageshack 링크를 제거했습니다

스크린 샷 :

죽은 Imageshack 링크를 제거했습니다

암호:

import net.rim.blackberry.api.messagelist.ApplicationIcon;
import net.rim.blackberry.api.messagelist.ApplicationIndicator;
import net.rim.blackberry.api.messagelist.ApplicationIndicatorRegistry;
import net.rim.device.api.system.EncodedImage;
import net.rim.device.api.ui.MenuItem;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.Menu;
import net.rim.device.api.ui.container.MainScreen;

class Scr extends MainScreen {
    EncodedImage mImageGreen = EncodedImage
            .getEncodedImageResource("bb_icon_green.png");
    ApplicationIcon mIconGreen = new ApplicationIcon(mImageGreen);
    EncodedImage mImageRed = EncodedImage
            .getEncodedImageResource("bb_icon_red.png");
    ApplicationIcon mIconRed = new ApplicationIcon(mImageRed);

    ApplicationIcon mIcon = mIconGreen;

    public Scr() {
        add(new LabelField("Use menu to:"));
        add(new LabelField("Register indicator"));
        add(new LabelField("Increment value"));
        add(new LabelField("Decrement value"));
        add(new LabelField("Switch icon"));
        add(new LabelField("Unregister indicator"));
    }

    MenuItem menuRegister = new MenuItem("register", 0, 0) {
        public void run() {
            registerIndicator();
        };
    };
    protected int mValue = 0;
    MenuItem menuIncrement = new MenuItem("increment", 0, 0) {
        public void run() {
            mValue++;
            updateValue(mValue);
        };
    };
    MenuItem menuDecrement = new MenuItem("decrement", 0, 0) {
        public void run() {
            mValue--;
            updateValue(mValue);
        };
    };
    MenuItem menuSwitchIcon = new MenuItem("icon", 0, 0) {
        public void run() {
            mIcon = (mIcon == mIconGreen) ? mIconRed : mIconGreen;
            updateIcon(mIcon);
        };
    };
    MenuItem menuUnregister = new MenuItem("unregister", 0, 0) {
        public void run() {
            unregisterIndicator();
        };
    };

    protected void makeMenu(Menu menu, int instance) {
        super.makeMenu(menu, instance);
        menu.add(menuRegister);
        menu.add(menuIncrement);
        menu.add(menuDecrement);
        menu.add(menuSwitchIcon);
        menu.add(menuUnregister);
    }

    private void registerIndicator() {
        try {
            ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry
                    .getInstance();
            ApplicationIndicator indicator = 
                    reg.register(mIcon, false, true);
        } catch (Exception e) {
        }
    }

    private void unregisterIndicator() {
        try {
            ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry
                    .getInstance();
            reg.unregister();
        } catch (Exception e) {
        }
    }

    void updateValue(int value) {
        try {
            ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry
                    .getInstance();
            ApplicationIndicator appIndicator = 
                    reg.getApplicationIndicator();
            appIndicator.setValue(value);
        } catch (Exception e) {
        }
    }

    void updateIcon(ApplicationIcon icon) {
        try {
            ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry
                    .getInstance();
            ApplicationIndicator appIndicator = 
                    reg.getApplicationIndicator();
            appIndicator.setIcon(icon);
        } catch (Exception e) {
        }
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top