まあ、質問はそれをすべて言っていると思います
私はプライベートAPIを使用することにオープンであり、特定のGPSを検出した場合に、カメラ機能が自動的に無効になる場所を指定するアプリを作成しようとしています。。。。
注:このソリューションではUIImagePicker
. 組み込みの Camera.app を参照していて、それを無効にする方法が必要なだけだと思います。
デバイスをジェイルブレイクする意思がある場合 (コメントで読んだものです)、脱獄できるはずです。
まず、iOS Launch Daemonを作成する必要があります。これは、常に実行され、場所を監視するバックグラウンド プロセス (UI なし) です。起動デーモンの書き方の例については、ブログを参照してください。この例では、必要になる場所を監視するデーモンも示しています。
次に、デーモンが特別な場所にいることを検出したら、 の実行権限を変更するだけです/Applications/Camera.app/Camera
。実行不可にします (chmod 664
の代わりに775
)。
chmod
システム コールを作成して、アプリからコマンドを呼び出します。
system("chmod 664 /Applications/Camera.app/Camera");
または、おそらくNSFileManager
API を使用して、ファイルの権限属性を変更することもできます。
もちろん、そのエリアを離れるときに権限を元に戻す必要があります (位置データが利用できない場合、タイマーの遅延後にカメラを再度有効にするように、アプリを保守的にしたい場合があります)。
上記でリンクしたデーモンのチュートリアルでは、ルート ユーザー (userid = 0) として実行するようにデーモンをセットアップすると思います。これは、おそらくカメラの実行権限を変更する権限が必要です。そうでない場合は、返信を投稿してください。さらに情報を掘り下げます。私は自分の電話で複数のデーモンを実行しており (少し前に書いたものです)、それらにはルート権限があるので、その方法を理解したに違いありません :)
また、Owen が言ったように、位置情報サービスがオフになっているか、位置情報の修正が利用できない可能性があります。このアプリが特定の場所で写真を撮らないように注意するためだけのものなのか、それとも保護を破ろうとする他のユーザーから保護する必要があるのか はわかりません. これが問題である場合は、さらに情報を投稿してください。そこから先に進みます...
注:写真禁止ゾーンに入る前にカメラが既に実行されている場合、カメラを無効にする必要があるかどうかはわかりません。その場合、デーモンkill
に Camera プロセスでコマンドを発行させることもできます。
iDevice が特定の場所にあるときにカメラの使用を無効にしたいと考えています。成功するとは思えません。特定の緯度内の位置を検出したときにカメラを無効にするアプリを作成できたとしても、おそらく自分でカメラをアクティブにして使用を許可しないことによって、アプリがバックグラウンドで実行されるという保証はありません. また、位置情報サービスがオフになっている可能性があり、アプリはその位置を認識できません。また、サンドボックスを回避するには、デバイスをジェイルブレイクする必要があります。現時点では、iOS で汎用デーモンを作成する方法はありません。ハードウェア リソースをキャプチャするものはもちろんありません。私が誤解している場合は、何をしようとしているのかを詳しく説明してください。