Reputation: 23
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
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
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
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