bluetooth(フレームワーク:multipeer connectivity )を使ってチャットの送受信するアプリを作ろうとしています。
その際にアドバタイズする情報に自分で設定したサムネイル画像を送信し、相手側の端末でデバイス検索時に、相手の端末名と共にそのサムネイル画像も表示したいのですが、うまくいきません。
もちろん、一度端末同時が接続してしまえば、画像を送信することはできます。
しかし、やりたいことは、端末同士が接続する前の端末を検知した時点で、相手の設定した画像情報を取得して表示したいのです。
やり方としては、アドバタイズする際にMCAdvertiserAssistantを作成する際のサービスタイプの詳細情報(info)に画像データ(NSData)をセットする方法かと思うのですが、アプリが引数エラーで異常終了します。
画像データの大きさが問題なのかと思いましたが、どんなに頑張っても700byteくらいにしか小さくできませんでした。
以下にコードのサンプルを掲載します。
objective
1コード 2 UIImage *imageToSave = [UIImage imageNamed:@"flower.jpg"]; 3 4 /* 画像をリサイズする*/ 5 CGSize resize = CGSizeMake(10, 10); 6 7 // Create a graphics image context 8 UIGraphicsBeginImageContext(resize); 9 [imageToSave drawInRect:CGRectMake(0,0,resize.width,resize.height)]; 10 UIImage* resizedImage = UIGraphicsGetImageFromCurrentImageContext(); 11 UIGraphicsEndImageContext(); 12 13 NSData *jpgData = [[NSData alloc] initWithData:UIImageJPEGRepresentation(resizedImage, 0.1)]; 14 // infoにメッセージをセットする 15 [info setObject:jpgData forKey:@"image"]; 16 17 _nearbyServiceAdvertiser = [[MCNearbyServiceAdvertiser alloc] initWithPeer:peerID 18 discoveryInfo:info 19 serviceType:serviceType]; 20
RFC6763のSection6にアドバタイズ時の詳細情報(info)のkey/valueの
記載がありますが、バイナリデータを送信しても問題ないような記載があります。
リンク内容
また、bluetooth(フレームワーク:multipeer connectivity )を使ってると思われる類似のiosアプリ『偶然の出会い』では、bluetoothのみで相手のサムネイル画像を表示する機能がありました。
どなたかもしご存じの方がいましたら、ご教授をお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/09 05:49
2015/11/09 08:43
2015/11/09 09:22