UWP : アプリでデバイスの電話番号を取得するための API
Windows 10 Mobile でデバイスの電話番号 (SIM カード上の電話番号) を取得する際、Windows.Devices.Sms.SmsDevice2 クラスの AccountPhoneNumber プロパティにより取得可能であるが、、、以下の Note によると、、、
Note This functionality is only available to mobile operator apps and Windows Store apps given privileged access by mobile network operators, mobile broadband adapter IHV, or OEM. For more information, see Mobile Broadband: Windows Store device apps.
この API はネットワーク オペレーター(通信電話会社・キャリア) やハードウェアメーカー、OEM 向けに用意されているものです。つまり、一般のデベロッパーはこの API を利用したアプリをストアを経由し配布することができません。ぬか喜びさせてしまい、すみません。アプリとしての利便性と利用者の情報を守るセキュリティのバランス、と受け止めて下さい。
では改めて、アプリでデバイスの電話番号を利用するため電話番号を取得したい場合、
・ユーザーによる手入力
・連絡先(ContactPicker)より自分を選択し入力 (自分を入力していること前提です)
のいずれかになります。
また、アプリで電話番号表示を行いたい場合は、[設定 – システム - 電話] を直接呼び出すための ms-settings: URI スキームの ms-settings:phone を利用することも検討してください。
bool result = await Launcher.LaunchUriAsync(new Uri("ms-settings:phone"));
<参考>
SmsSendAndReceive サンプル : https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/SmsSendAndReceive
ContactPicker サンプル : https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/ContactPicker