user736116
user736116

Reputation: 23

Critical tunnel failure error blackberry

I have developed a app for blackberry ,its approved from appworld but it gives following error

on 4.6

Critical tunnel failure 

and

on 5.0 and 6.0
ava.io APN not specified  

please help why this error is coming and how to solve it

Upvotes: 2

Views: 1619

Answers (3)

Sydwell
Sydwell

Reputation: 5014

Solved this issue by setting the APN values on the phone its self and using the connection string code suggested in the other answers.

Change your APN settings (in South Africa)

On Home screen, click Options
Click Advanced Options and then TCP
Enter the APN: **internet** 
   username: **guest**
   password: **guest**
Press the Menu key and select Save

(for rest of the world find your settings here) From http://www.blackberrytune.com/blackberry-tcp-ip-apn-settings/ and http://www.blackberryfaq.com/index.php/Carrier_specific_APN/TCP_settings

Upvotes: 0

Sydwell
Sydwell

Reputation: 5014

Just to clear up some issues.

@Jisson your answer was helpful

But you did not include code for the method getCarrierBIBSUid()

/**
 * Looks through the phone's service book for a carrier provided BIBS network
 * @return The uid used to connect to that network.
 */
private static String getCarrierBIBSUid()
{

    ServiceRecord[] records = ServiceBook.getSB().getRecords();
    int currentRecord;

    for(currentRecord = 0; currentRecord < records.length; currentRecord++)
    {
        if(records[currentRecord].getCid().toLowerCase().equals("ippp"))
        {
            if(records[currentRecord].getName().toLowerCase().indexOf("bibs") >= 0)
            {
                return records[currentRecord].getUid();
            }
        }
    }

    return null;
}

Also it might be helpful to include

    if (DeviceInfo.isSimulator()){
        return   ";deviceSide=true";    
    }

At the beginning of the getConnectionString() method For more info see Melick's Blog

Upvotes: 0

Jisson
Jisson

Reputation: 3725

I think Problem is you didn't add appropriate connection suffix to the url.

Follow the link can solve your problem:http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800451/800563/What_Is_-_Different_ways_to_make_an_HTTP_or_socket_connection.html?nodeid=826935&vernum=0

And also ou can use the following sample code:

private static String getConnectionString(){
    String connectionString="";
    if(WLANInfo.getWLANState()==WLANInfo.WLAN_STATE_CONNECTED){
        connectionString=";interface=wifi";
    }

     else if((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS){
         connectionString = ";deviceside=false";
    }
        else if((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_DIRECT)==CoverageInfo.COVERAGE_DIRECT){
            String carrierUid=getCarrierBIBSUid();
            if(carrierUid == null) {
                connectionString = ";deviceside=true";
            }
            else{
                 connectionString = ";deviceside=false;connectionUID="+carrierUid + ";ConnectionType=mds-public";
                }               
            }
     else if(CoverageInfo.getCoverageStatus() == CoverageInfo.COVERAGE_NONE)
        {

        }
    return connectionString;
    }

Upvotes: 3

Related Questions