Blackberry アプリケーションに問題があります。実際に、インスタント メッセージング用のサード パーティ サーバーと Web サービス呼び出し用のコードを使用して、Blackberry チャット アプリケーションを開発しました。
アプリはWIFIネットワークで正常に動作していますが、キャリアネットワークでアプリを実行しようとすると表示されます
サーバー認証に失敗しました
ConnectionStringのコードは次のとおりです。
public static String getConnectionString() {
String connectionString = "";
if (DeviceInfo.isSimulator()) {
if (USE_MDS_IN_SIMULATOR) {
connectionString = ";deviceside=false";
} else {
connectionString = ";deviceside=true";
}
}
else if ((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_DIRECT) == CoverageInfo.COVERAGE_DIRECT) {
String carrierUid = getCarrierBIBSUid();
if (carrierUid == null) {
// Has carrier coverage, but not BIBS. So use the carrier's TCP
// network
connectionString = ";deviceside=true";
} else {
connectionString = ";deviceside=false;connectionUID=" + carrierUid + ";ConnectionType=mds-public";
}
}
else if ((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS) {
connectionString = ";deviceside=false";
}
else if (CoverageInfo.getCoverageStatus() == CoverageInfo.COVERAGE_NONE) {
}
else {
connectionString = ";deviceside=true";
}
if ((RadioInfo.getActiveWAFs() & RadioInfo.WAF_WLAN) != 0
&& WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED) {
connectionString += ";interface=wifi";
}
connectionString += ";ConnectionTimeout=30000";
return connectionString;
}
BIS キャリアを取得するためのコードは次のとおりです。
public static String getCarrierBIBSUid() {
ServiceRecord[] records = ServiceBook.getSB().getRecords();
int currentRecord;
try{
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();
}
}
}
}catch (Exception e) {
}
return null;
}