재고 MMS 원본을 사용하여 MMS를 보내려고합니다. 더 많은 설명을하기 전에, 나는 그것이 일부 안드로이드 버전 4.0.3과 4.0.4에서 작동한다고 말하고 싶다. 내 서비스에서 NetworkInfo TYPE_MOBILE_MMS 기능
, 나는 다음과 같은 코드를 사용하여 MMS 네트워크 기능을 사용하도록 장치를 물어result
이
PhoneEx.APN_TYPE_NOT_AVAILABLE
동일하기 때문에 (엑스 페리아 T는 4.0.3을 실행하는) 일부 장치
createWakeLock();
int result = mConnMgr.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, PhoneEx.FEATURE_ENABLE_MMS);
Log.v(TAG, "beginMmsConnectivity: result=" + result);
switch (result) {
case PhoneEx.APN_ALREADY_ACTIVE:
case PhoneEx.APN_REQUEST_STARTED:
acquireWakeLock();
return result;
}
throw new IOException("Cannot establish MMS connectivity");
를, 그것은 예외가 발생합니다 . 내 휴대 전화 설정에서 MMS를 사용할 수 있으며 재고 mms 앱으로 MMS를 보낼 수 있습니다.
다른 장치 (HTC Desire S 4.0.4)에서는 ConnectivityBroadcastReceiver
에 문제가 조금 더 있습니다. 당신은 코멘트에서 볼 수 있듯이
private class ConnectivityBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
String action = intent.getAction();
mNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
mOtherNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
networkAttempt++;
if (networkAttempt < APN_RETRY_ATTEMPTS) {
// Check availability of the mobile network.
if ((mNetworkInfo == null) || (mNetworkInfo.getType() != ConnectivityManager.TYPE_MOBILE_MMS)) {
// ERROR is located here, it returns TYPE_MOBILE :s
Log.v(TAG, " type is not TYPE_MOBILE_MMS, bail");
return;
}
}
...
이 mNetworkInfo.getType()
반환 TYPE_MOBILE
는하지만 TYPE_MOBILE_MMS
을 기대 : 여기 내 코드입니다.
제 질문은 다음과 같습니다. 제가 잘못 했습니까? 아니면 다른 방법이 있을까요?
Ps : Android 2.3에서 3.2 및 4.1 이상을 실행하는 기기에서 작동합니다.
분명히 문제는 휴대 전화에서 사용하는 APN과 관련이 있습니다. HTC 욕망 S에서는 작동하지만 Xperia에서는 작동하지 않는 것으로 보입니다. – Manitoba