3

こんにちは、私は SMSComposer に取り組んでおり、アドレス帳から連絡先に SMS を送信したいと考えています。iPhone に SIM カードが入っているかどうかを検出したいと考えています。

これにたどり着く方法はありますか?

REachability クラスを試してみましたが、WWAN とインターネット接続に関する情報が得られます。コア テレフォニー フレームワークにはそのような機能がありますか? iPhoneのキャリア名などのようなもの.??

どんな助けでも大歓迎です。ありがとうヴィカス

4

2 に答える 2

8

Swift / iOS 12+

フレームワークを介して試すことができますCoreTelephony

let noAvailability = CTTelephonyNetworkInfo()
    .serviceSubscriberCellularProviders?
    .values
    .compactMap { $0.mobileCountryCode }
    .isEmpty ?? false

(of )の公式ドキュメントには、考慮に入れる価値のあるいくつかのエッジケースに関するもう少し多くの情報が含まれています。mobileCountryCodeCTCarrier


元の答え

次にリンクしてみてくださいCoreTelephony.framework

#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>

NSString *_code = [[[[CTTelephonyNetworkInfo alloc] init] subscriberCellularProvider] mobileCountryCode];

それについての公式ドキュメントでより多くの情報を見つけることができますが、簡単に:

このプロパティの値nilは、次のいずれかに該当する場合です。

  • デバイスにSIMカードがありません。

  • デバイスがセルラーサービスの範囲外です。

機内モードの場合、値はniliPhone4Sより前のハードウェアにある可能性があります。

于 2012-11-30T12:03:40.813 に答える
1

この目的のために、MessageUI.framework フレームワークを追加する必要があります...

このコードを試してください...それはあなたを助けるかもしれません

Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
if([messageClass canSendText]){
    // Sim available
}
else{
    //Sim not available
}
于 2012-11-30T11:39:08.057 に答える