質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

3回答

11688閲覧

iPhone 電話番号をアプリから取得する方法

gami

総合スコア17

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2016/10/04 03:12

編集2016/10/09 06:39

###前提・実現したいこと
お世話になっております。
androidであればTelephonyManagerクラスで端末の電話番号を(ユーザーの許可があれば)取得することができると思うのですが、同様にiPhoneで自機に刺さっているSIMの電話番号を取得する方法があればご教授いただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

archiver

2016/10/09 01:09

タグにAndroidが入っていますが、今回は関係ないですよね?iPhoneでの話なので。
gami

2016/10/09 07:11

ご指摘ありがとうございます。修正いたしました。
guest

回答3

0

ベストアンサー

結論から言うと、実質的にできないように思われます。

stackoverflowの「Programmatically get own phone number in iOS」という質問へのとある回答に、Apple社の見解とされるものが紹介されています (2009年11月現在)。これによると、iOSのアプリケーションが端末の電話番号を取得することはできません。また、そのようなことをするとSDK Agreementに反する場合があるとのことです。

ちなみに、非公開API (private API) を使って電話番号を取得する方法も、あるにはあるようです。しかし上述のApple社の見解を見る限り、アプリ申請の際の同社によるコードレビューで拒絶されることもありえます (非公開APIを使ったアプリが全て拒絶されるわけではないですが、この場合は拒絶される可能性が高いと考えられます)。もっとも認められれば、そのアプリに限っては使える方法ということになりますが。

投稿2016/10/11 03:07

ikedas

総合スコア4306

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gami

2016/10/11 08:59

回答ありがとうございます。やはり、リジェクトの内容等でしか公式見解は確認できないようですね。おとなしく入力を促すフォームを導入する必要がありそうです。
guest

0

TelephonyManagerクラスを使用すれば自機の電話番号が取得できるようです。

具体的なコード例で言えば
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
String line1Number = telephonyManager.getLine1Number();
で良いようです。

逆引きAndroid入門
http://www.adakoda.com/android/000324.html
で確認されてはいかがでしょうか?

ご参考まで

投稿2016/10/08 19:59

Yatsurugi

総合スコア1628

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raccy

2016/10/09 00:28 編集

質問で聞いているのは、AndroidではなくiPhoneで取得する方法ですよ?
gami

2016/10/09 07:11

ご回答ありがとうございます。 androidであれば、SIMからいとも簡単に情報を取得出来るので、同様にiOSで取得できないかと思い、質問させていただきました。 出来ないにしても公式にその様な記述もなく、、、
Yatsurugi

2016/10/11 11:31

失礼しました。iPhoneだとikedasさんがご回答のように実質 できないのかもしれません。逆に勉強になりました。 ご指摘ありがとうございました!!
guest

0

iOS周りは全く詳しくないのですが、ちょっと検索してみたところ、iOS 9から追加されたContacts Frameworkを使って連絡先アプリのデータを取得してみるというページで紹介されていることには、Contacts frameworksならびにContacts UI frameworksを使うそうです。
アプリの作成例も載っていますので、参考にされてはいかがでしょうか。

投稿2016/10/09 01:08

archiver

総合スコア1557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gami

2016/10/09 06:46

ご回答ありがとうございます。 ユーザーがsimに記録されている自身の電話番号を、連絡先アプリに自分で登録していれば、ご教授いただいた方法で取得できると思います。 しかしながら今回はsimから直接参照する方法を探しております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問