ネイティブメッセージングアプリを使用せずに内部的に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を実行しているデバイスをサポートできるようにしたいと思います。
ご協力いただければ幸いです。