2つのiPhoneアプリケーションがあります。1 つのアプリケーションがフォアグラウンドで実行され、もう 1 つのアプリケーションがバックグラウンドで実行されます。バックグラウンド アプリケーションがフォアグラウンドにならずに USB 経由でデータを送信する方法はありますか? 理想的には、バックグラウンド アプリが一部のデータを処理している間、フォアグラウンド アプリをフォアグラウンドに保持したいと考えています。データが処理されると、データが処理されたことをフォアグラウンド アプリに通知します。
3 に答える
いいえ、できません。Made for iPhone プログラムに参加していない限り、プライベート フレームワークを使用しないと、これを行うことさえできません。もしそうなら、あなたの組織は、あなたに提供されたドキュメントに基づいて、あなたがアクセスできるものとできないもの、いつ、どのようにアクセスできるかを知ることができます.
Made for iPhone プログラムに参加していて、何にいつアクセスできるか不明な場合は、組織内でこのプログラムの Apple の技術担当者に連絡してください。詳細を教えてくれます。
アプリがフォアグラウンドにあるときにタスクが開始され、適切な beginBackgroundTask/endBackgroundTask メソッドを呼び出すと、アプリがバックグラウンドになった後もタスクを実行し続けることができます。
USBへのアクセスは制限されており(jerの回答を参照)、同じデバイス上の異なるアプリ間で通信する公式に認可された方法はないことに注意してください。また、App Store で一度に購入/ダウンロードできるアプリは 1 つだけであり、動作させるために 2 つ目のアプリをダウンロードする必要があるアプリを Apple が承認しているとは思えません。そのため、最初に解決しなければならない大きな問題があるかもしれません。
実際に達成したいことを教えていただけると、非常に助かります。たとえば、「ユーザーの電話の MyApp がユーザーのコンピューターの MyApp と通信できるようにしたい」などです。
電話とコンピューターの間でデータを送信する最も簡単な方法は、両方が同じ Wi-Fi ネットワーク上にあることを要求することです。いくつかの iPhone アプリには Web サーバーが組み込まれており (これは、OS 3.2 より前の「ファイル共有」の最も簡単な方法でした)、さらに多くの iPhone アプリはサーバー ソフトウェアを実行しているコンピューターに接続します。
あなたの他のオプション、多かれ少なかれ:
- GameKit の Bluetooth 側をリバース エンジニアリングし、コンピューター側で再実装します。これを行った人を私は知りません。大まかに言うと、IP over Bluetooth PAN に加えて、ある種の Bluetooth サービス検出だと思います。
- オーディオ入力/出力。ヘッドフォン ジャックやドック コネクタの特定のピンなど。マイク側がどのように機能するかは完全にはわかりませんが (確認したところ、カーボン マイクの抵抗は少し高かった)、運が良ければ「ライン イン」に変換する方法や「ライン イン」を見つける方法が見つかるかもしれません。ドックコネクタのピン。
- iDevice 画面に向けられた Web カメラ (およびコンピューター画面に向けられた iDevice カメラ)。ええwwwww。
- MFi プログラムに参加します。