Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从BlackBerry浏览器中的url启动应用程序?_Blackberry - Fatal编程技术网

从BlackBerry浏览器中的url启动应用程序?

从BlackBerry浏览器中的url启动应用程序?,blackberry,Blackberry,我正在开发一个应用程序,我将在浏览器中启动一个url,从中启动我的应用程序 假设我单击google.com,然后按enter,它将启动我的应用程序。为此,我尝试了HttpFilterRegistryAPI 作为参考,我使用的是HTTPFilterDemo应用程序。但目前在启动应用程序时,我收到了NullPointerException 我使用openFilter方法编写了以下代码: 公共连接openFilter(字符串名称、int模式、布尔超时)引发IOException{ out(“协议”,“

我正在开发一个应用程序,我将在浏览器中启动一个url,从中启动我的应用程序

假设我单击
google.com
,然后按enter,它将启动我的应用程序。为此,我尝试了
HttpFilterRegistry
API

作为参考,我使用的是HTTPFilterDemo应用程序。但目前在启动应用程序时,我收到了
NullPointerException

我使用
openFilter
方法编写了以下代码:

公共连接openFilter(字符串名称、int模式、布尔超时)引发IOException{
out(“协议”,“它在openFilter方法内部”);
_url=name.substring(2);
_requestHeaders=新的HttpHeaders();
_responseHeaders=新的HttpHeaders();
_setProperty(HttpProtocolConstants.HEADER_CONTENT_TYPE,“text/html”);
Logger.out(“协议”,“它来了:::4444”);
final int modHandle=CodeModuleManager.getModuleHandle(“AppLaunchBrowser”);
out(“协议”,“这是模块句柄::”+modHandle);
最终ApplicationDescriptor[]apDes=CodeModuleManager.getApplicationDescriptors(modHandle);
最终ApplicationDescriptor appDescriptor=新的ApplicationDescriptor(apDes[0],新字符串[]{});
out(“协议”,“这是应用描述符::”+appDescriptor);
试一试{
final int-appCode=ApplicationManager.getApplicationManager().runApplication(appDescriptor,true);
Logger.out(“协议”,“这里是应用程序代码::”+appCode);
}捕获(ApplicationManagerException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
// }
归还这个;
}
在应用程序类中,我创建了替代入口点,并使用如下方法:

public类AppLaunch扩展UiApplication{
公共静态void main(字符串参数[])
{
out(“AppLaunch”,args+”参数的长度::“+args.length);
如果((args!=null)&&&(args.length>0)&&(args[0].equals(“背景”))
{
Logger.out(“AppLaunch”,“在备用入口点”);
//out(“AppLaunch”,args+”参数的长度::“+args.length);
HttpFilterRegistry.registerFilter(“www.google.co.in”,“com.innominds.ca”,false);
}
其他的
{
Logger.out(“AppLaunch”,“AppLaunch内部”);
AppLaunch theApp=新的AppLaunch();
theApp.request前台();
out(“AppLaunch”,“创建了应用程序启动对象”);
theApp.enterEventDispatcher();
//Logger.out(“AppLaunch”,“在备用入口点”);
//HttpFilterRegistry.registerFilter(“www.google.co.in”,“com.innominds.ca”,false);
}
}
公共应用程序启动()
{
检查权限();
showTestScreen();
}
私有void checkPermissions()
{
ApplicationPermissionsManager apm=ApplicationPermissionsManager.getInstance();
ApplicationPermissions original=apm.getApplicationPermissions();
if(original.getPermission(ApplicationPermissions.PERMISSION\u BROWSER\u FILTER)==ApplicationPermissions.VALUE\u ALLOW)
{
//所有必需的权限当前都可用
返回;
}
ApplicationPermRequest=新的ApplicationPermissions();
permRequest.addPermission(ApplicationPermissions.PERMISSION\u BROWSER\u FILTER);
布尔接受=ApplicationPermissionsManager.getInstance().invokePermissionsRequest(permRequest);
如果(接受)
{
//用户已接受所有权限
返回;
}
其他的
{
}
}
私有void showTestScreen()
{
UiApplication.getUiApplication().pushScreen(新的AppLaunchScreen());
}
}

我终于解决了这个问题。事实上,NPE正在引入一些其他回调方法,因为我正在实现FilterBaseInterface。

你能发布NPE抛出的行吗?我不知道它抛出的是什么。因为代码中的evry log正在执行,但在AppLaunch类中我正在创建备用入口点。我正在尝试调试它。但它告诉我调试文件丢失。因此我无法找到NPE的确切位置。。