私はプロのドライバー向けのアプリプロジェクトに取り組んでいます。
提供する必要のあるすべての機能に加えて、ユーザーが運転中にアプリを使用できないようにする必要があります。
この目標を達成するための秘訣はありますか?
たとえば、スマートフォンが静止していないときに(つまり、動きを検出したときに)ブロックされる可能性があると思っていましたか?ただし、センサーの精度が十分でないと、ユーザーが歩行中にアプリを使用できなくなる可能性があります。
多分あなたはそれを使用するために車に配線する必要があり、車が動いている場合はブロックされますか?
ばかげて聞こえますが、実行するのはかなり難しいようです...
編集:この特定の聴衆のために、私たちは運転手が一人であることを知っています(または少なくとも、乗客を持つことを許可されていません)
私がよく覚えていれば、Wazeのように警告メッセージが表示されるでしょう。でも、このあたりに他の技術やアイデアがあるのかと思っていました。
無理をしないでください。アプリを見る運転手とそれを見る助手席をどのように区別できますか?場所/動きは同一になります。
ナビゲーションシステムは、起動時に「運転中はこれを行わないでください」と警告します。それで十分でしょう。
この世界では、いくつかの考えが必要だと思います。かつては洞窟やヒョウの時代に戻ってきました。
以前のこのようなiOSアプリ に取り組んできたので、私の経験といくつかの結論を伝えます。 これらのエクスペリエンスのすべてがiOSアプリを開発していることに注意してください。現時点では、サンドボックス化されたアプリは、Androidアプリよりもサンドボックス化されています。あなたがプラットフォームを知っているのために再開発。
それはあなたが狙っている素晴らしい目標ですが、もっと大きく考えてください。ドライバーがアプリだけを使用しないようにしたいが、アプリ、テキストメッセージ、または電話も使用しないようにしたいデータの増加は、運転の混乱を示しているドライバーの能力を損なう。実際、テキストメッセージに応答する人の応答時間は 飲酒運転よりも悪いです] 運転中のテキストメッセージは殺害 1日に少なくとも11代の若者 であり、 National Safety Council 推定 毎年すべてのトラフィッククラッシュの28%以上が携帯電話に関係しています。 この問題に対するほとんどの回答ただし、否定的です(電話またはアプリを無効にします)。あなたは肯定的な反応を考えましたか?多分あなたは彼らの電話を使わないことに対してドライバーに報酬を与えることができるいくつかの方法?
あなたのターゲットオーディエンスはプロのドライバーであると言います。プロが運転中に電話を操作するよりも知っているべきです。 (そして、彼らがその常識に少し違反した場合でも、クラッシュを回避するスキルはあります。)
起動時にユーザーに運転中は操作しないように指示し、人間の要素が愚かでないことを信頼してください。もちろん、宇宙は常により良いバカを構築しますが、問題はあなたの手に負えません。
GPSに基づいてユーザーの速度を計算し、特定の速度を超えて移動するときにアプリを無効にすることは、最も明白な解決策のように聞こえます。
OneProtect アプリ、例えば:
OneProtectテクノロジーは、運転中のドライバーによる携帯電話の使用をブロックします。スマートフォンのGPSが車が選択した速度を超えて移動していることを示したら(デフォルトは時速15マイル)、ロックされます
OneProtectには、乗客がブロックを迂回してアプリを使い続けることができる「注意検証テスト」も組み込まれています。
...短時間で画面に表示される文字を正確にタップするように求めます。 AVTは、ドライバーにとっては基本的に不可能であるとテストされていますが、乗客にとっては実行可能です。
Appleは今年、自動車内のドライバーの位置に基づいてモバイルデバイスの特定の機能を無効にする特許を取得しました。この件に関するAppleInsiderの記事はここにあります: http://appleinsider.com/articles/14/04/22/Apple-tech-takes-on-distracted-driving-blocks-users-from-texting -while-behind-the-wheel
記事からの特許の概要は次のとおりです。
米国特許商標庁が発行したApple「ドライバーハンドヘルドコンピューティングデバイスロックアウト」の米国特許番号8,706,143。デバイスのユーザーが運転しているかどうかをインテリジェントに判断し、煩わしい電話機能を遮断するシステムです。それに応じて。
特許は興味深い読み物です。電話を使用する個人が運転手か同乗者かを判断する2つの方法について説明します。
ここで説明する方法の1つでは、RFIDを使用して車両内の他の要素(たとえば、ホイールやイグニッションスイッチ)との関係を特定するために、車に変更を加える必要があります。
あなたの質問では、車両に対する変更機能が制限されている可能性があると推測しています(車の配線について言及しています)。この場合、関連する解決策の1つは、電話のドングル(アプリで提示する必要がある)とシガーライターのレシーバー(または最近ではライターと呼ばれるもの)です。 )。その近さに基づいて、あなたは彼らが車のどこにいるかを理解することができます。ねえ...簡単な解決だとは言わなかった!
「風景アナライザー」に関連する特許で説明されている他の方法は、その定義がもう少し抽象的です。
1つの議論では、カメラを使用して、デバイスホルダーが「安全」または「安全でない」動作領域にあるかどうかを判断します。この例は、上記のリンクされた記事で示されています。
たとえば、分析アルゴリズムは、1つの顔とステアリングホイールを示す写真またはビデオを分析することで、ユーザーが運転席にいることを検出できます。
結局のところ、その答えは、他の人があなたがしたい(またはできる)努力に対してどれだけの努力をしたか、そして彼らが何をしているのかについてドライバーが賢いことに頼る必要があるだけの量についてです。 「安全でない動作領域」を見つけることは非常に困難であり、潜在的なエラーや回避策がたくさんあります。
Wazeのように、警告メッセージを表示するモーションセンサーで十分だと思います。
私たちは、シナリオが何であるか、そして起こり得る例外を単に伝えることができないので、アプリが動いている間、ドライバーがアプリを使用できないようにする方法でアプリが「責任がある」べきではないと思います。
これはBluetoothテクノロジーを搭載した車両でのみ機能しますが、ペアリングされたBluetoothデバイスに関連付けることができます。おそらく、これらはプロのドライバーであるため、会社の電話を使用しています。 Bluetoothデバイスを「is car」または「is not car」として構成し、スーパーバイザーだけが知っている管理者パスワードを使用して、ドライバーが設定を変更できないようにする必要があります。
完璧ではありませんが、別のアプローチです。
私の意見では、これらはアプリの安全性を低下させます。なぜなら、メッセージを心に留めるのではなく、ドライバーがボタンを押してそれを回避するからです。
ドライバーが道路から目をそらすのに費やす時間を最小限に抑えるために、アプリをできるだけ短時間で使用できるようにすることに重点を置きます。どのようなアクションでも、ボタンを押す回数は最小限で済み、すべてのボタンは、不正確にヒットされる可能性があるほど大きくなければなりません。追加のボーナスとして、これはまた、運転していない状況でもアプリをより便利にします。
やや過剰に設計されたソリューションですが、完全性のために言及されています:
前方を向いたカメラと画像処理を使用して、ユーザーが画面を見ている時間を他の場所(道路など)と比較して検出することができます。アプリを使用するドライバーの注意のパターンは、アプリを使用する前席の乗客とは大きく異なると思います。
Wazeソリューションは良いもののようです。通常のメニュー/ボタン関連のアクションは許可されていますが、特定の速度を超えたときにキーボード関連のタスクが必要な場合、「運転中は利用できません」などの警告ダイアログが表示されます。賢いのは、「OK」ボタンが2つありますが、もう1つは「乗客」ボタンです。
そうすることで、ユーザーがドライバーではないときに移動するときに使用するときに邪魔にならずにポイントになります...
何をするにしても、運転中にアプリを使いにくくしないでください。不可能にするのは問題ありませんが、困難にするのは簡単ではありません。理由:運転中に本当にアプリを使いたいという人が常にいるでしょう。そして、それは運転から集中力を取り除くので、それが愚かであることを私たちは皆知っています。しかし、運転中にアプリを使いにくくすると、これらの人々は運転からさらに集中力を失い、より危険になります。
さてAppleとその特許には Mirror Link というシステムが存在します許可されています。モールの情報はウェブサイトで確認できます。現在のプロジェクトでは役に立たないかもしれませんが、次のプロジェクトでは役立つかもしれません。
アプリはどのようなサービスを提供していますか?また、ユーザーが移動中の車両を操作しているときに、そのサービスを単に望ましくないものにするにはどうすればよいでしょうか。
GPSや類似のモーション検出を使用して何かを実行すると、すぐに失敗します。確かに、そのユーザーには同乗者がいるはずではありませんが、同乗者の場合はどうでしょうか。ユーザーがタクシーのような別の乗り物にいるとき、あなたのプログラムは価値がゼロですか? 「乗客」は別の会社の運転手である可能性がありますか?
他の場所で言及されているパスコード、クイック入力文字などは、アプリを一般的に使いにくくし、ユーザーとして言えば、3度目に登場したときに削除機能への片道の旅になります。ユーザーを苛立たせることは決して助けにはなりません。会社が発行した電話の場合は、残念ながら「事故」の可能性があります。
いくつかの推測をさせてください-それがドライバーのログブックである場合、スケジュールされたシフト時間とモーションに基づいて自動的に機能するようにします。メッセージを受信した場合は、電話の動きが10秒間止まる(赤色のライト)までメッセージを保持します。
列車はかつては押さえなければならないデッドマンのスイッチを持っていました。これは面倒だったので、ドライバーはお弁当にレンガを入れました。または力学に応じてロープ。今日、システムは列車のキャブ内のすべてのコントロールを調べ、何かが定期的に操作されることを期待しています。ドライバーは定期的に何かを操作するので、ドライバーはそれをバイパスしなくなります。
ステップ1)電話自体をどの程度制御できるかを決定する必要があります。
ステップ2)合理的な仮定を明確にします。その人が実際に運転することになっている時期を知っていると思いますか?当時、事前に、または事後にのみ?これは...
ステップ3)アプリのユーザーを個別に識別できますか?既知の人物のID /電話に登録されていますか?
これらの回答に応じて、電話からさまざまなツールを自由に利用できます。
既知のドライバー、設定されたスケジュールがあり、時間、GPS、および適切なインターネットにアクセスできる電話がある場合の最良の解決策は、組み合わせを使用することです。
最初にその日のドライバースケジュールを取得し、それを使用してドライバーがいつ働くべきかを判断することができます。次に、GPS(または車両機器)を使用して、人間の歩行を超えた動き(10-20mphを超えるものは明らかに「歩行しない」ことを明らかにします)を判断できます。これが一定の時間内であれば、運転者はあなたを運転してはいけません。アプリの使用、および可能であれば該当する情報を添えて、人間による検査のために会社に報告します。
車両装備をお持ちの場合、車両が駐車されていないと、電話/アプリは使用できません。さらに簡単に!
個々のモノには人間の欠陥があるか、打ち勝ちやすい-人々は、彼らが働いていないと言ったり、改ざんしたり、勤務スケジュールに入らない、GPSをオフにして自分の動きを隠したり、自分の電話にこのアプリをインストールしたり、 2つ目など。しかし、ドキュメントを組み合わせることができる会社のシステムと組み合わせて、会社が必要に応じてこれを真剣に受け止めれば、利用可能なすべての知識を組み合わせたハイブリッドソリューションになります。
「あなたは運転する予定があった間、あなたは携帯電話をいじっていて、実際に運転していた。これが再び起こると、あなたはもはや私たちと一緒に雇われないだろう。」
これがカジュアルなアプリまたは必須でないアプリの場合、明らかにこれらのソリューションの多くはユースケースにまったく適合しません-しかし、これがまさにユースケースを明確に定義して、解決に使用できるツールを知る必要がある理由ですあなたの問題。
サウンドを使用する可能性についてはまだ誰も言及していません。私はいくつかのアイデアを考えることができます:
一度ポップアップする警告メッセージだけに行きます。あなたがそれを毎回ポップアップするならば、それはただユーザーを困らせるでしょう。
その上、画面の上部/下部にnon-obtrusiveバナーを選択して、移動中であることを検出したときに同じ警告を表示することもできます。
一度だけの警告メッセージはそれだけではおそらく私を止めませんが、それが常に画面上にあるとき(邪魔にならない)、それは私がしていることが安全でないことを常に思い出させます。
人が動いているときにアプリを完全にロックすることは絶対にしないでしょう。これはおそらく逆の結果をもたらすからです。運転中にアプリをいじくり回して、再び機能させることができます。
画面上の両方の親指の指の存在を有効にします。少なくとも誰かがあえてこの手から離れることをあえてします。または、ユーザーがデバイスに正面カメラを持っている場合は、画面上のユーザーのアイコンタクトを監視します。
あなたはしません。運転アプリであっても、それはあなたの仕事ではありません。ナイフユーザーが人を殺すのをどのように止めますか?あなたはしません。あなたはそれらを信頼しています。
電話がインターネットに接続されている場合(アプリがインターネット接続を必要とする場合はさらに優れています)、GPSと OpenStreetMap の組み合わせを使用してifユーザーが道路上にいて、どれくらいの速さで移動しているか。
インターネット接続が利用できない場合は、WiFiがある本社でアプリを「初期化」し、適切な道路データをダウンロードする必要があります。ユーザーが利用可能な道路データの外を移動し、オフラインモードの場合は、アプリを無効にします-ユーザーは会社のポリシーに反してそれを使用します。
OpenStreetMapの統合により、速度計算を落とすことさえできます。路上にいることは、あなたのルールに従って運転することとほぼ同じです。あなたが言ったように、乗客に対する方針があります。ただし、ドライバーが停止しているとき、たとえば赤信号またはタイヤがパンクしているときにアプリを簡単に有効にする場合は、速度計算が役立つことがあります。
実際に答えを出す... Android=で、ユーザーの位置情報を要求すると、ユーザーの速度も得られます。
ここでの最良の答えは、位置情報の更新を取得するクラスです。 https://stackoverflow.com/questions/3145089/what-is-the-simplest-and-most-robust-way-to-get-the-users-current-location-in-a
http://developer.Android.com/reference/Android/location/Location.html#getSpeed() そして、location.getSpeed()を使用して速度を取得します。ユーザーが特定の速度で進んでいる場合は、アプリを無効にすることができます。これの明らかな欠点は、車の乗客であることです。
Android OSには 表示方法 デバイスが車にドッキングされている場合(ただし、特定のドックである必要があります)。
この方法でドッキングされたデバイスは、ドライバーが常にそれを見ることができる位置(GPSまたはラジオとして使用される)にあり、したがってアプリの使用を許可すべきではないと考えることができます。
しかし、再び、車は停止する可能性があります。
より複雑な方法の1つとして、デバイスがカーオーディオシステムと(Bluetoothを介して)ペアリングされているかどうかを検出し、GPSで速度を読み取ることもできます(ただし、車内ではGPSが適切な位置に配置されていない限り、GPSはそうではありません)非常に正確です)。
これがWazeのやり方です。良い参考資料であるため、誰もそれを取り上げていないことに驚いています。
一部の国では、運転中に携帯電話を使用することが法律違反になる可能性があります。そのため、明確なUIを用意し、法的な問題を回避することが最善の方法です。
そして、Wazeはそれをかなり上手にしています。あなたは"passenger
"または"driver
"のどちらかです。ドライバーの場合、入力できるようにするには、静止モード(GPS検出)である必要があります。
確かに、運転手は「乗客」ボタンを選択し、それでもタイプしようとするかもしれません。ただし、技術的には法的にも、ユーザーが事故を起こした場合、Wazeは責任を負いません。
私は、誰かが運転しているかどうかに関係なく、アプリのエクスペリエンスをまったく変更しません。エクスペリエンスは同じでなければなりませんが、x速度を超えるモーションが検出されたときに、アプリのヘッダーに警告メッセージを追加します。次に、x速度を超えるアプリの使用状況がログに記録されて報告されることをユーザーに警告します。このログは、マネージャまたは雇用企業にアクセスできる可能性があります。これは、追跡対象の車両がコースから外れたり、停車が長すぎるとどうなるかを示しています。シンプルな人材管理。次に、それは管理と訓練の問題です。
GPSの読み取り値と動きを検出するBluetooth接続を組み合わせて、車が存在するかどうかを検出できますか? GPSが移動していると表示し、車のデバイスが常に近くにある場合、それは基準を満たしますか?プラットフォームでこれら2つの機能を使用できますか?
ここに掲載されている他の回答にも同意しますが、そもそもそれが良いアイデアかどうかという質問ではなく、エンジニアリングの側面に興味があると思いました。あなたの目標が「プロの」ドライバーであると仮定すると、これは良い安全策かもしれません。一部の車は、車が動いている場合、前の席で映画を再生することができません。そのため、要件が厳しく感じられるようには見えません。
ユーザーが運転中に携帯電話やアプリを使用するのを防ぐのは非常に困難であり、ユーザーがそうすることを100%防ぐ方法はありません。
ただし、運転中にアプリを使用しないようにするために実装できるロードブロッキングは多数あります。
最初に実装できるのは、アプリにアクセスするためのパスコードであり、アプリを開く前に最初に入力する必要がある4桁のコードのようなものです。
より直接的である可能性のある別のオプションはアプリが開いたときにプロンプトを表示するその現在運転中かどうかをユーザーに尋ねるはいまたはいいえボタンそして、「はい」を押すと、アプリが自動的に閉じます。
また、アプリに移動するために押す[OK]ボタンでアプリが開くたびに、アプリが運転中は使用されないことをユーザーに表示することもできます。
ただし、電話が動いているときにアプリを使用不可にすることはお勧めできません乗客がアプリを使用しているか、単にアプリを使用している可能性があるためtrain or walking。に入れてください。ほんの一部の提案です。これがお役に立てば幸いです。