2011-12-22 2 views
0

장치에 앱을 배포 할 때 웹 서비스를 호스팅하는 서버에 연결하는 데 문제가 있습니다. 이 인스턴스는 다음 연결 매개 변수를 사용할 때 발생합니다.BlackBerry Java java.io.IOException : 전송하지 못했습니다.

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

} 

모든 것이 시뮬레이터에서 정상적으로 작동합니다.

if(TransportTypes[i]== TransportInfo.TRANSPORT_TCP_WIFI){ 
      ConnectionParameter = ";interface=wifi"; 
      break; 
     } 

하거나 :

ConnectionParameter = ";interface=wifi"; 

모든 일이 접근 방식의 문제가 무엇인지 실마리가 무선 랜을 사용하는 경우

모든 또한 장치와 시뮬레이터 모두에서 잘 작동?

+0

**에 추가 된 행을 언급하고 있습니까? – jprofitt

+0

직접 TCP를 사용합니다. 당신은 apn 설정을 설정 했습니까? – rfsk2010

+0

예 Rihan, TCP를 사용하지만 APN을 설정하는 것은 제가 지금 가지고있는 문제입니다. 너는 단서가 있니? –

답변

0

글쎄,이 문제를 해결할 방법을 찾았습니다. TCP 직접 채널을 사용하려면 APN 설정이 여전히 필요하지만 나는 하나를 사용하기 전에 가장 강한 사용 가능한 채널을 연속적으로 검사했다. Creating a BlackBerry HTTP Connection – Tutorial

당신의 제안을 여러분 모두 감사합니다 :

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


} 

뿐만 아니라 당신이 정말 도움이 다음 링크를 찾을 수 있습니다 :

아래 내 코드의 발췌 한 것입니다.

관련 문제