2011-01-25 15 views
0

ネイティブメッセージングアプリを使用せずに内部的にMMSを送信するAndroidアプリケーションで作業しています。私はhttps://android.googlesource.comで見つけたネイティブアプリのコードをガイドとして使用しており、実際のプロトタイプを作成することができました。 しかし、電話がWifiに接続されているときにHTTP_Postを作成しようとすると、少し問題が発生します。wifiがアクティブなときに接続の問題を送信する(Android)

以下のコードでは、MMSネットワーク機能をリクエストし、接続がアクティブであることを示すandroid.net.conn.CONNECTIVITY_CHANGEインテントを待ちます。私はTYPE_MOBILEのNetworkInfoを要求し、それが接続されていることを確認します。これが私が問題にした場所です。 wifiが接続されている場合は、info.isConnected()を呼び出すとFalseを返し、MMS HttpPostは作成できません。このポストは3G/GPRS接続を介して作成する必要があります。私はそれが仕事を得ることができます

ConnectivityManager.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "enableMMS"); 
//wait for android.net.conn.CONNECTIVITY_CHANGE intent 
NetworkInfo info = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
if (!info.isConnected()) 
    return; 

唯一の方法は、info.isConnected()がtrueを返すと、私は成功しHttpPostを作るために行くことができ、その時点で無線LANを切断することです。しかし、これはネイティブのアプリがこれをしないように見えるので、これがこの機能を実行する正しい方法だとは思わない。 ネイティブメッセージングアプリケーションのTransactionService.javaは、非推奨のクラスNetworkConnectivityListenerを使用して接続を管理していますが、Wifi接続を変更するコード内に何も表示されません。

誰もこれに似た問題を抱えていたのですか、それを回避する正しい方法について知っていますか? ConnectivityManagerのドキュメントに接続タイプTYPE_MOBILE_MMSがありますが、2.2以上のデバイスでのみサポートされているため、試していないし、1.6を実行しているデバイスをサポートできるようにしたいと思います。

ご協力いただければ幸いです。

答えて

1

2.0以上のデバイスでandroid.net.ConnectivityManager.TYPE_MOBILE接続タイプを使用する際に問題があることがわかりました。これらの場合、TYPE_MOBILE_MMSを使用する必要があり、1.6デバイスの場合はTYPE_MOBILEを使用するだけです。 無線LANを切断する必要はありません。

0

WiFiデータ接続がオンになると、モバイルデータ接続がオフになります。 両方のタイプを確認する必要があります。

関連する問題