• ベストアンサー

iOSでシステム起動時に実行

こんにちは。 iOSで位置情報を使用してバックグラウンドで動作するアプリを開発しようとしています。 いまのところ、バックグラウンドで実行するためには、一度フォアグラウンドで実行する必要があるのですが、一度、システムをシャットダウンしてしまいますと、改めてフォアグラウンドで実行する必要があります。 ここで、シャットダウンされても、次の起動時にバックグラウンドでの実行が継続できるようななにかうまい方法はありませんでしょうか? Appleですので、禁止されているという可能性もあると思います。その場合はそんな情報でも構いません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

やはり難しいと思います。 できそうなのは、UILocalNotificationを使って一定時間後にローカル通知を出し、アプリが起動されてない時に「現在アプリが停止しているため位置情報が採取されていません。本メッセージをタップして位置情報採取を再開してください」といったようなメッセージを表示するくらいだと思います。その場合、ユーザーがその通知メッセージをタップしないと、アプリは起動されません。 こういう制約があるから、iPhoneは(ユーザーが承認しない限り)アプリが勝手に動かなくて安心という面もあると思います。

titokani
質問者

お礼

回答ありがとうございます。 やはり難しいですよね。 iOSのアプリが全体的にそのように作られているということであれば、 クライアントにもそのように説明できると思います。 ありがとうございました。

関連するQ&A

  • iOS4のマルチタスクについて教えてください。

    iOS4のマルチタスクについて教えてください。 iOS4のマルチタスクについて、ウィキペディでは以下のように記述されています。 >原則としてバックグラウンドのアプリケーションはタスク切替後にスリープ状態となり、 >次回呼出時に切替直前の動作状態が復元されるが、 >アップルが許可するバックグラウンド動作に関するAPIを使用することで、 >オーディオ再生やVoIP、位置情報通知などiOSの一部機能を >バックグラウンドのアプリケーションからも利用可能となる。 オーディオ再生等以外に、フォアグラウンドのアプリがコピーしたテキストの内容を、バックグラウンドのアプリが取得することは可能でしょうか? ご存知の方がいらっしゃいましたら教えてください。 よろしくお願いします。

  • バックグラウンド処理について(iOS)

    お世話になりまくっております。 道玄坂小五郎です。 iOSアプリ開発者用にSDKを作成しているのですが、有料の為、第3者に使われてしまった 場合の対策でとてもてこずっています。 ログインした時にサーバから使用できる残り時間をもらい、それを基にタイマーで管理した いのですが、バックグラウンド処理を調べた結果 ”ios7未満のデバイスだと、電話系、オーディオ系、位置情報系など以外はバックグラウンド 処理が、数秒~10分までしか動かない仕様で、ホームボタンを押しただけで数秒待機状態 になった後、バックグラウンド処理が止まってしまう”事がわかりました。 本来はホームボタンを押した後もずっとタイマーを回して、アプリをフォアグラウンドにする前 にタイマーが切れたら、その後再ログインしないと使えない。 という形にしたいのですが、現状だとホームボタンを押した時にタイマーは止まってしまい、 アプリをフォアグラウンドにする前に有効期限を迎えていても、フォアグラウンドにした時に タイマーが前回の続きから動き出し、残り時間まで使えてしまう状態になっています。 ※オフラインでも使えるようにするという考慮もある為、オンラインで都度確認というのは無し としております。 現在調べようとしている事 ・プッシュ通知機能などで何か対策できないか見ていますが、調べきれてません。 ・タイマー(アラーム)関係のアプリはどうやっているのか。 何か良い案をお持ちの方おりましたら、アドバイスお願いします。 つたない文章ですみません。

  • バックグラウンド通信とは?

    バックグラウンド通信とはどのようなことをいうのでしょうか? また 「フォアグラウンドアプリだけでなくバックグラウンドで動作しているアプリも、最新情報の取得などのためにインターネットでの通信を行うことがある。」 とのことですが、フォアグラウンドアプリとは? またバックグラウンドで動作しているアプリとはどう違うのでしょうか?

  • Objective-c 位置情報BG処理について

    お世話になっております。 現在、Objective-cを使い、位置情報を取得してNSTimerを用い、n(ユーザの選択した5~60)分後に位置情報を付与したURLへpostするというアプリを開発しています。 実際にバックグラウンド系に必要な設定(plistやios8より導入されたNSLocationAlwaysUsageDescriptionの追加等)は完了しており フォアグラウンドでの動作及び、10分程度のバックグラウンド処理は確認しています。 しかし、10分を過ぎてしまうとタイマーが止まってしまう様です。 ※呼び出し先のメソッドにNSLogを仕込んで確認済み 色々調べた所、位置情報の取得はバックグラウンドで動作するが その他の処理については10分間の猶予期間の様な物を過ぎると、すべて処理が無効になるといった記載が散見されました。 そこで質問ですが 1.なんとかバックグラウンドで処理出来るようにする方法はないでしょうか。 (ユーザにフォアグラウンドで使ってもらえば良い話なんですが…。) 2.上記が不可の場合には、NSTimer又はその他の方法を利用して、数分おきにサーバのURLへアクセスするといったアプリを作る方法はありますか? 開示出来る情報が少なく申し訳ございませんが、何卒ご教示頂けますと幸いです。 宜しくお願い致します。

  • iOS7 バックグラウンドのアプリ消去は?

    iPhone5 16GB iOS7の環境です。 以前、iPhoneでバックグラウンドのアプリを消さないとバッテリーの持ちが悪くなるとかメモリを消費して動作が遅くなるとありました。 私は何時もサクサク状態で使いたいので1日に何回かバックグラウンドのアプリを消していました。 ただ、iOS7になってからそれが出来なくなってしまったのです。 やり方って有るのですか?それとも、iOS7になってもうやる必要は無くなったのですか? 教えて下さいm(--)m

  • iOSシミュレーション上でIPAファイルを実行

    開発中のIPAファイルをiOSシミュレータ上で実行したいのですが、実行方法がわかりません。単純に、iOSシミュレータ上にIPAファイルをドラッグすると、「Download Failed Safari cannot download this file」とメッセージが出て、実行できません。 IPAファイルは、開発中のスマホアプリなので、Safariは関係ないのですが。。。 iOSシミュレータでIPAを実行する方法を、教えて下さい! Xcodeのバージョンは、4.6.3です。

  • iOSのバックグラウンドアプリを終了させない方法

    以下のようなタイトルになりそうな質問になるのですが・・・ ・iOSでバックグラウンドにいったDropboxの転送を止めない方法 ・iOSやLINEでバックグラウンドで会話か通話受信する方法 ・agephoneでバックグラウンドで電話を着信する方法 等のようになりますが、宜しくお願いします。 #バッテリーの持ちをよくするために、iOSではこういうのを  動作停止していることは既知です。逆に、これがあるために  フォアグランドアプリも快適になっているのもあるのですが

  • iOS開発に必要な環境

    こんにちは、 iOS開発、つまりipadやiphoneなどのアプリの開発に必要な環境についてお尋ねしたいと思います。 使用しているOSは、Leopard(10.5)なんですが、この環境でiOS4(そしてiOS5)用のアプリケーションを開発できますか?Xcode 4はLeopardで動作しますか?それで開発されたアプリケーションはちゃんとiOS4で使えるのでしょうか? 詳しい方がいらっしゃいましたら、教えていただければありがたい。

  • xcodeからiOSシミュレータが起動しなくなる

    いつも大変お世話になっております。 現在、iPhoneアプリが開発してアップルに申請しようとしております。 今回、質問させて頂くのは、 xcodeからiOSシミュレータが起動しなくなる件についてです。 詳細な現象と致しまして、 iOSシミュレータが起動して真っ黒な画面なままアプリが起動しません。 cocos2dを使用しています。 こちらの現象は以前にも起きていて、その時は、実機検証でもたついている最中に起きました。 今回は、アップルにアプリ申請の際にエミュレータからのスクリーンショットをとろうとして 起きました。 再起動してみたものの同じ現象であります。 しかしTitanium MobileでkitchenShinkを起動した場合、アプリは起動するという不可思議な 現象が起きております。 解決方法やヒントとなるURLをご存知の方、 ご教授のほど宜しくお願い致します。 何卒、宜しくお願い申し上げます。

  • バックグラウンドからフォアグラウンドへの切り替え

    LinuxでのC言語プログラムについての質問です。 バックグラウンドにてイベントを監視 ↓ イベントが発生したら別のプログラムにて処理を行う ↓ その後監視に戻る というプログラムを作っているのですが、 ”別のプログラムにて処理を行う”ところをフォアグラウンドにて 行いたいと思っています。 ・バックグラウンドで実行中にフォアグラウンドに切り替える。 ・バックグラウンドで実行中のプログラムから、別のプログラムを  フォアグラウンドにて実行する。 このどちらかを行うことはできないでしょうか? よろしくお願い致します。

専門家に質問してみよう