Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   XE5 + iOS: Mobilfunk-Providerinformationen auslesen??? (https://www.delphipraxis.net/177543-xe5-ios-mobilfunk-providerinformationen-auslesen.html)

romber 12. Nov 2013 19:37

XE5 + iOS: Mobilfunk-Providerinformationen auslesen???
 
Hallo!

In Xcode benutze ich folgende Code, um Informationen über den aktuellen Mobilfunkprovider abzufragen:

Code:
#import <CoreTelephony/CTTelephonynetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>

...
...

CTCarrier *provider [[[CTTelephonyNetworkInfo alloc] init] subscriberCellularProvider];
if(provider != nil) {
  NSString *providerName = [NSString stringWithString:[provider carrierName]];
  NSString *providerIsoCountryCode = [NSString stringWithString:[provider isoCountryCode]];
  //etc.
}
Wenn ich nun versuche, die Code in Delphi zu implementieren, bleibt provider ohne Wert. Hier meine Code:

Delphi-Quellcode:
uses
   ..., iOSApi.Foundation, iOSApi.UIKit, iOSApi.CocoaTypes, iOSApi.CoreTelephony;
...
procedure TiOSTelephony.UpdateProviderInfo;
var
  networkInfo: CTTelephonyNetworkInfo;
  provider: CTCarrier;
begin
  try
    networkInfo := TCTTelephonyNetworkInfo.Wrap(TCTTelephonyNetworkInfo.OCClass.alloc);
    provider := networkInfo.subscriberCellularProvider;
    if Assigned(provider) then
    begin
      FProviderName := NSStringToString(provider.carrierName);
      FProviderISOCountryCode := NSStringToString(provider.isoCountryCode);
      FProviderMobileCountryCode := NSStringToString(provider.mobileCountryCode);
      FProviderMobileNetworkCode := NSStringToString(provider.mobileNetworkCode);
      FProviderAllowsVOIP := provider.allowsVOIP;
    end;
  except
  end;
Was mache ich falsch?

daywalker9 12. Nov 2013 20:52

AW: XE5 + iOS: Mobilfunk-Providerinformationen auslesen???
 
So wie ich das sehe fehlt dir noch das "Init"

Daniel 12. Nov 2013 21:04

AW: XE5 + iOS: Mobilfunk-Providerinformationen auslesen???
 
Moin,


ich würde das gar nicht alles selbst machen:

Delphi-Quellcode:
procedure Tfrm_DeviceInfo.DoShowTelephonyInfo;
var service : IFMXPhoneDialerService;
begin
  lb_DeviceInfo.BeginUpdate;

  if TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(service)) then
  begin
    CreateLH(lb_DeviceInfo, 'Telefonie-Dienst' );

    CreateLI(lb_DeviceInfo, service.GetCarrier.GetCarrierName, 'Dienstanbieter' );
    CreateLI(lb_DeviceInfo, service.GetCarrier.GetIsoCountryCode, 'ISO Country-Code' );
    CreateLI(lb_DeviceInfo, service.GetCarrier.GetMobileCountryCode, 'Mobile Country Code (MCC)' );
    CreateLI(lb_DeviceInfo, service.GetCarrier.GetMobileNetwork, 'Mobile Network Code (MNC)' );
  end;

  lb_DeviceInfo.EndUpdate;
end;

romber 12. Nov 2013 21:33

AW: XE5 + iOS: Mobilfunk-Providerinformationen auslesen???
 
Vielen Dank Euch beiden!

Für meine Code fehlte mir tatsächlich ein Init. Und dass es so ein IFMXPhoneDialerService gibt, wusste ich gar nicht.
Danke!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz