BlackBerry Java.io.IOException:传输失败
当我将应用程序部署到设备时,连接到承载Web服务的服务器时出现问题。使用以下连接参数时发生此实例:BlackBerry Java.io.IOException:传输失败,java,blackberry,java-me,Java,Blackberry,Java Me,当我将应用程序部署到设备时,连接到承载Web服务的服务器时出现问题。使用以下连接参数时发生此实例: }else if(TransportTypes[i]== TransportInfo.TRANSPORT_TCP_CELLULAR ){ String carrierUid = getCarrierBIBSUid(); if(carrierUid == null) { ConnectionParame
}else if(TransportTypes[i]== TransportInfo.TRANSPORT_TCP_CELLULAR ){
String carrierUid = getCarrierBIBSUid();
if(carrierUid == null) {
ConnectionParameter = ";deviceside=true";
}
else{
**ConnectionParameter = ";deviceside=false;connectionUID="+carrierUid + ";ConnectionType=mds-public**";
}
break;
}
public static String getCarrierBIBSUid(){
ServiceBook sb = ServiceBook.getSB();
ServiceRecord[] records = sb.findRecordsByCid("WPTCP");
String uid = null;
for(int i=0; i < records.length; i++)
{
//Search through all service records to find the
//valid non-Wi-Fi and non-MMS
//WAP 2.0 Gateway Service Record.
if (records[i].isValid() && !records[i].isDisabled())
{
if (records[i].getUid() != null && records[i].getUid().length() != 0)
{
if ((records[i].getUid().toLowerCase().indexOf("wifi") == -1) &&
(records[i].getUid().toLowerCase().indexOf("mms") == -1))
{
uid = records[i].getUid();
break;
}
}
}
}
return uid;
}
或者只是:
ConnectionParameter = ";interface=wifi";
有人知道这种方法可能有什么问题吗?嗯,我找到了解决问题的方法。虽然仍然需要APN设置才能使用TCP直接通道。在使用之前,我连续检查了最强的可用通道 以下是我的代码摘录:
public static String getConnParams() {
String ConnectionParameter ="" ;
int TransportTypes[] = TransportInfo.getAvailableTransportTypes();
int wifi=0;
int wap2=0;
int BIS=0;
int MDS=0;
for(int i=0; i<TransportTypes.length; i++){
if(TransportTypes[i]== TransportInfo.TRANSPORT_TCP_WIFI ){
wifi = TransportInfo.TRANSPORT_TCP_WIFI ;
}else if(TransportTypes[i]== TransportInfo.TRANSPORT_WAP2 ){
wap2 = TransportInfo.TRANSPORT_WAP2;
}else if(TransportTypes[i]== TransportInfo.TRANSPORT_BIS_B ){
BIS = TransportInfo.TRANSPORT_BIS_B;
}else if(TransportTypes[i]== TransportInfo.TRANSPORT_MDS ){
MDS = TransportInfo.TRANSPORT_MDS;
}
}
if(wifi!=0 && TransportInfo.hasSufficientCoverage(wifi)){
ConnectionParameter = ";interface=wifi";
return ConnectionParameter;
}else if(wap2 !=0 &&TransportInfo.hasSufficientCoverage(wap2)){
String carrierUid = getCarrierBIBSUid();
if(carrierUid == null) {
ConnectionParameter = ";deviceside=true";
}
else{
ConnectionParameter = ";deviceside=true;connectionUID="+carrierUid;
}
return ConnectionParameter;
}else if(BIS !=0 && TransportInfo.hasSufficientCoverage(BIS)){
ConnectionParameter = ";deviceside=false";
return ConnectionParameter;
}else if(MDS !=0 && TransportInfo.hasSufficientCoverage(MDS)){
ConnectionParameter = ";deviceside=false";
return ConnectionParameter;
}else{
ConnectionParameter = ";deviceside=true";
return ConnectionParameter;
}
}
public静态字符串getConnParams(){
字符串ConnectionParameter=“”;
int TransportTypes[]=TransportInfo.getAvailableTransportTypes();
int wifi=0;
int-wap2=0;
int-BIS=0;
int-MDS=0;
对于(int i=0;i您指的是添加到**的行吗?它使用直接tcp。您设置了apn设置吗?是的,Rihan,它使用tcp,但设置apn是我现在的问题。您有线索吗?
public static String getConnParams() {
String ConnectionParameter ="" ;
int TransportTypes[] = TransportInfo.getAvailableTransportTypes();
int wifi=0;
int wap2=0;
int BIS=0;
int MDS=0;
for(int i=0; i<TransportTypes.length; i++){
if(TransportTypes[i]== TransportInfo.TRANSPORT_TCP_WIFI ){
wifi = TransportInfo.TRANSPORT_TCP_WIFI ;
}else if(TransportTypes[i]== TransportInfo.TRANSPORT_WAP2 ){
wap2 = TransportInfo.TRANSPORT_WAP2;
}else if(TransportTypes[i]== TransportInfo.TRANSPORT_BIS_B ){
BIS = TransportInfo.TRANSPORT_BIS_B;
}else if(TransportTypes[i]== TransportInfo.TRANSPORT_MDS ){
MDS = TransportInfo.TRANSPORT_MDS;
}
}
if(wifi!=0 && TransportInfo.hasSufficientCoverage(wifi)){
ConnectionParameter = ";interface=wifi";
return ConnectionParameter;
}else if(wap2 !=0 &&TransportInfo.hasSufficientCoverage(wap2)){
String carrierUid = getCarrierBIBSUid();
if(carrierUid == null) {
ConnectionParameter = ";deviceside=true";
}
else{
ConnectionParameter = ";deviceside=true;connectionUID="+carrierUid;
}
return ConnectionParameter;
}else if(BIS !=0 && TransportInfo.hasSufficientCoverage(BIS)){
ConnectionParameter = ";deviceside=false";
return ConnectionParameter;
}else if(MDS !=0 && TransportInfo.hasSufficientCoverage(MDS)){
ConnectionParameter = ";deviceside=false";
return ConnectionParameter;
}else{
ConnectionParameter = ";deviceside=true";
return ConnectionParameter;
}
}