7

現在の接続を検出するために到達可能性 API を使用していますが、WIFI と 3G しか区別できません。

次のフラグを取得します。

LTE:kSCNetworkReachabilityFlagsIsLocalAddress|kSCNetworkReachabilityFlagsIsWWAN|kSCNetworkReachabilityFlagsTransientConnection|kSCNetworkReachabilityFlagsReachable

WI-FI:kSCNetworkReachabilityFlagsIsDirect|kSCNetworkReachabilityFlagsReachable

問題は、LTE が 3G 接続と同じフラグを返すことです。ユーザーが現在 LTE または 3G を使用しているかどうかを判断する方法はありますか?

4

2 に答える 2

15

iOS 7 では、CoreTelephony フレームワークの のcurrentRadioAccessTechnologyプロパティを使用してこれを確認できます。CTTelephonyNetworkInfo

#import <CoreTelephony/CTTelephonyNetworkInfo.h>

CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new];

if ([networkInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) {
    // ...
}
于 2013-10-22T20:18:02.193 に答える
3

この隠されたコア テレフォニー API が、LTE に接続されているか、より遅いテクノロジに接続されているかを判断するのに十分な情報を提供できるかどうか疑問に思います。

CTRegistrationGetCurrentMaxAllowedDataRate();

試してみる価値があるかもしれません。

プライベート API の使用について詳しくは、Core テレフォニーを使用した iPhone モバイル番号をご覧ください。

ただし、プライベート API を使用すると、アプリが Apple によって拒否されることを読みました。

于 2013-01-05T01:10:37.130 に答える