2017-02-13 6 views
5

私はシングルタスクアンドロイドデバイスを作る必要がある顧客プロジェクトを持っています。顧客は私の会社が開発したアプリケーションから逃れることはできません。また、顧客は他のアプリケーションを起動することができず、デバイスの起動時にアプリケーションが起動されます。全体的にすべての顧客は、デバイスがアプリケーションを実行しているとすることができます。Android:1つのアプリのみを実行する方法

この作業を行う方法は、デバイスをルーティングし、すべてのシステムボタンを無効にし、アプリケーションをランチャーにする以外の方法があります。私はこの目的のために400のデバイスのようなものを持っているので、それらのすべてを根付かせることは多くの時間を要します。

私はまた、COSUデバイスに関するGoogleのチュートリアルを読みますが、顧客がアプリを逃れることができるので、それは非常にconfucing https://developer.android.com/work/cosu.html#testing-plan

アンドロイド独自の画面固定が十分ではありませんがわかりました。一部はSureLockのようなキオスクアプリケーションを使用することを提案するかもしれませんが、私の会社の目標は、サードパーティのアプリケーションを使用せずにこのための明確な解決策を見つけることです。また、いくつかのキオスクアプリケーションを介して私たちのアプリを実行している私たちの目標ではありません。

同様の質問で、スタックオーバーフローに関するいくつかの記事を見つけましたが、私が探していた答えは見つかりませんでした。

誰かがこの質問のヒントを持っている場合、私は非常に感謝しています。

+0

キオスクアプリを開発したいですか? hmm interesting –

答えて

0

マニフェストファイルで定義して、アプリケーションをランチャーアプリケーションとして作成します。

その後、モバイルデバイスの設定に移動し、アプリケーションにデフォルトのランチャーアプリケーションを変更します。

1

私は前に同じ問題に遭遇しました。私は少なくとも3日間研究をしました。私は多くの解決策を見つけようとしましたが、ゼロが見つかりました。

How I solve is 

    1. Up To JellyBean 
    - Use System Alert Dialog (And make it transparent and small size like 2 * 2 And display in some corner(User can't see it)). User can't press home button If there is system Alert dialog 

    2. After JellyBean, This method doesn't work. The user can press the home button even though there is System Alert Dialog. 
    so what I did is, start the service on stop and start the same activity again and again(within sec). So user can't see any difference.Don't forget to make activity as single task so that even though you start same activity from service, again and again, new activity will not create (So Ugly way) 

    - You can simple make screen full screen. make sure in kiosk mode try to check if the screen is in full-screen mode. if not make it full-screen mode(its not hard to do) 

    - other way is to make launcher app but when ever you pressed home button it always asked to choose launcher app. if user mistakenly choose default/ other launcher app, this solution doesnt work 

    Good luck 
+0

ソリューション1は創造的ですが、キオスクモードを実現するためにシステムアラートダイアログを悪用することはお勧めしません。私は前に推奨された2番目のソリューションを見てきましたが、それは素晴らしい解決策ではありません。あなたのアプリやサービスはいつでもアンドロイドによってクラッシュまたは殺される可能性があり、ユーザーはデバイスで必要なことをやり遂げることができます。あなたがまだキオスクモードのための良い解決策を探しているなら、いくつかの選択肢のための私の答えをチェックしてください:http://stackoverflow.com/a/43644803/2888763 –

2

Androidの上に構築された単一目的のデバイスは、実装が難しくなります。いくつかのオプションがありますが、それぞれにトレードオフがあります。

あなたが言及したように、ルーティングデバイスは機能的にあなたを得てくれますが、何百ものデバイスがルートし、メンテナンスするのに時間がかかり、デバイスやアプリケーションにセキュリティ問題が(潜在的に)導入されます。

別のオプションは、GoogleのCOSUデバイス[1]のロックタスクモードを使用しています。リンクは、ロックタスクモードの特徴を示す素敵なグラフィックがあります。ロックすることができ

  • のみホワイトリストされたDPC(デバイスポリシーコントローラ)によってアプリのホーム画面にピン留め

    • 1アプリを
    • ホームと最近のボタンは、このGoogleのソリューションを使用するいくつかの欠点がありますstopLockTask()

    を呼び出すことによって

  • 出口に隠されました。最初に、デバイス所有者として実行され、ポリシーを設定する完全に別個のDPCアプリを作成すること(とそのために維持すること)を推奨します[2]。また、アプリのアップデートを管理するGoogle Playにも依存し、Playアカウントを各端末に関連付けておく必要があります。これは、端末ごとのアプリ配信ルールを単純化するために1人のユーザーに限定されないCOSU形式のシナリオでは、 "[3]。DPCアプリを自動的にデバイスに追加するには、「DPCはGoogle Playで公開されている必要があります。また、エンドユーザーはDPC固有のIDを入力してデバイス設定ウィザードからDPCをインストールできます」。[3]ユーザーアプリケーションをGoogle Play [4]にアップロードします。これは、アプリをPlayにしたくないユーザーにとっては問題となる可能性があります。このルートを使用すると、必要な機能が提供されますが、複雑になる可能性があります.Google/Playサービスとそのワークフローを使用して、お客様とお客様を結びつけています。

    また、Mason [5]のようなエンタープライズモバイル展開プラットフォームを見ることもできます。あなたのアプリでは、アプリをキオスクモード(カメラやSMSの無効化、アプリの削除や設定の非表示などの他の機能)にロックした状態で数分間でカスタムAndroid OSを作成し、それをすべてのデバイスに展開することができます遠隔にMasonは、要件が変更された場合にあなたが管理するOSやアプリのアップデートもサポートしています。これは便利に聞こえる場合は、私に手を差し伸べること自由に感じ

    trevor @ bymason.com

    免責事項:私はメイソン

  • 関連する問題