应用程序无法在设备中工作,但在Blackberry的模拟器中工作

时间:2011-09-21 13:48:54

标签: blackberry

我有一个应用程序,我将阻止前台应用程序。这意味着当我点击主屏幕中的任何图标时,它不应该启动。我的应用程序在后台运行,并将在手机启动时启动。所以我在启动时检查了自动运行。这在模拟器中工作正常,但在运行cod文件后无法在设备中工作。我在Blackberry Storm中运行。我在这里放我的代码:

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();
}

}

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

1 个答案:

答案 0 :(得分:1)

只是一个想法 - 你有没有为你的应用设置权限?

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

请注意,无法在模拟器上模拟权限框架(模拟器就像所有权限始终设置为“允许”一样),因此要测试权限,您需要真正的设备。