こんにちはKID.Aです。
今回もiOS 7の新機能について記載していきたいと思います。
iOS 7からAirDropという機能が加わりました。AirDropは元々 MacのOS X Lion以降に追加されている機能で、Wi-Fi対応のMac間で直接にファイルを共有できます。
iOS 7が登場した際に、AirDropの機能がiOSにも搭載されiPhone同士でもファイル共有が簡単にできるようになりました。
しかし、現在のところiOS(iPhone、iPod touch、iPad)とMacの間ではまだAirDropが使用できません。(Mavericksでも試しましたが、ダメでした。)
iPhoneとMac間で早くAirDropが使えるようになるといいですね。
それでは、AirDropの使用方法、アプリから使用する実装方法を順番に説明します。
使用方法
実機でAirDropを使ってみます。操作は至って簡単です。
まずはAirDropを利用できる端末を2台(端末A、端末Bとします)用意します。
- 初期設定(端末A、端末B共に設定します)
(1) まずはコントロールセンターを開きます。
(2) その後、AirDropを選択します。今回は許可を全員にします。
(3) AirDrop:全員となっていればOKです。
- 画像を送る(端末Aで操作を行います)
(4) 写真から画像を開いて、左下のアップアイコンを押下します。送りたい画像を選択して、AirDropに表示されているユーザを選択します。
- 画像を受け取る(端末Bで操作を行います)
(5) 端末AからAirDrop経由で画像が送られてくると、拒否・受け取るを選択できるので、受け取るを選択すると、画像を受け取ることができます。
アプリ実装
実装方法は至って簡単です。
API自体は目新しいものは使用せず、iOS 6から追加されたUIActivityControllerを使用します。
以下はURLをUIActivityControllerに設定するコードです。
- (IBAction)push:(id)sender { NSURL* url = [NSURL URLWithString:@"http://blog.techfirm.co.jp/"]; NSArray *item = @[url]; UIActivityViewController *av = [[UIActivityViewController alloc] initWithActivityItems:item applicationActivities:nil]; [self presentViewController:av animated:YES completion:nil]; }
[self presentViewController:av animated:YES completion:nil]が呼ばれると以下の画面がでます。
ユーザはこの画面から連携したアプリを選択します(そのため、確実にAirDropと連携できるとは限りません)。
また1点注意があり、initWithActivityItems:itemで設定するNSArrayの中身は必ず1つにしてください。例えば画像とテキストや複数のタイプを設定するとAirDropとの連携ができなくなります。
AirDropでユーザを選択するとURLを渡すため、送信相手のiPhone端末には以下のような許可ダイアログが表示されます。
- テキストを送る場合
テキストを送る場合はNSStingをitemの中に入れてください。
NSString* text = @"hello"; NSArray *item = @;
- 画像を送る場合
画像を送る場合はUIImageをitemの中に入れてください。
UIImage* image = [UIImage imageNamed:@"xxx.png"]; NSArray *item = @[image];
Wi-FiとBluetoothがオフの場合
コントロールセンターからAirDropを使用する際に、必ず、Wi-Fiと
Bluetoothがオンになっていないとなりません。
もしWi-FiかBluetoothがオフの場合は以下のメッセージが表示され、
タップをすると、Wi-FiかBluetoothがオンになります。
もし構成プロファイルからWi-Fi、Bluetoothを禁止した場合はどうなる?
と思いましたが、構成プロファイルからWi-Fi、Bluetoothを禁止する項目はないため、
意図的にAirDropを利用させなくすることはできないようです。