【问题标题】:Application is not working in Device but working in simulator in Blackberry应用程序不在设备中运行,但在黑莓的模拟器中运行
【发布时间】:2011-09-21 13:48:54
【问题描述】:

我有一个应用程序,我将使用它来阻止前台应用程序。这意味着当我单击主屏幕中的任何图标时,它不应该启动。我的应用程序正在后台运行,并且会在手机启动时启动。所以我检查了启动时自动运行。这在模拟器中运行良好,但在运行 cod 文件后无法在设备中运行。我在黑莓风暴中运行。我在这里输入我的代码:

public class BlockApplication extends Application 
{
    int mForegroundProcessId = -1;

public BlockApplication() {
    Timer timer = new Timer();
    timer.schedule(mCheckForeground, 1000, 1);                       
}


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


TimerTask mCheckForeground = new TimerTask() {
    public void run() {
        int id = getForegroungProcessID();
        ApplicationManager appMan = ApplicationManager.getApplicationManager();
    appMan.requestForegroundForConsole();
        KeyEvent inject = new KeyEvent(KeyEvent.KEY_DOWN, Characters.ESCAPE, 0);
       inject.post();

    };
};


private int getForegroungProcessID() 
{
    return ApplicationManager.getApplicationManager().getForegroundProcessId();
}

}

有人可以帮忙吗?有什么问题?

【问题讨论】:

    标签: blackberry


    【解决方案1】:

    只是一个想法 - 您是否为您的应用设置了权限?

    例如,您的应用程序使用KeyEvent 注入 - 这具有潜在危险,因此需要用户的明确许可。在设备选项中(在我的 Storm 9530 模拟器上,它位于“选项”->“安全选项”->“应用程序权限”-> 选择您的应用程序->“编辑权限”菜单项)KeyEvent 注入的许可是命名为“输入模拟”。也可以使用编程方式为应用程序设置权限(检查ApplicationPermissionsManager 类,您也可以查看 JDE 中包含的 ApplicationPermissionsDemo 项目)。

    请注意,在模拟器上模拟权限框架是不可能的(模拟器就像所有权限都设置为“允许”一样),所以要测试权限,你需要真实的设备。

    【讨论】:

    • 是的,当我的手机启动时,我按照您所说的方式设置了权限。但我仍然没有得到想要的结果。
    • 这样就解决了?我有点惊讶,因为您的第一条评论说该问题与未设置的“输入模拟”权限无关。
    • 现在你能告诉我如何在黑莓中将呼叫转移到另一个号码吗??
    • Arindam,请就呼叫转移提出另一个 StackOverflow 问题。
    • 这可能是因为这个问题真的很难。
    猜你喜欢
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 2011-04-13
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多