1

OS6以降でBlackberryBarcodeScannerクラスを使用してQRコードをデコードするアプリケーションを開発しました。バーコードスキャナー画面が呼び出されると、OSはカメラの許可を警告し、アプリケーションは隠されます。つまり、バックグラウンドで実行されます。この時点で、ユーザーが赤い通話終了ボタンをクリックすると、アプリケーションは非表示になり(バックグラウンドのままで終了しません)、アラートは開いたままになります。ALLOWまたはDENYを受け入れてアプリケーションを再度開くと、モバイルがハングし、デバイスからバッテリーを取り外して再起動する必要があります。

この状況でユーザーが赤い通話終了ボタンをクリックすると、アプリケーションを完全に終了できます。OS権限アラートはアプリケーションから独立しているため、ユーザーがアプリケーションを呼び出すと、その権限が付与されます。

その時点からアプリケーションを終了するにはどうすればよいか教えてください。

4

1 に答える 1

3

アプリケーションがハングする理由はわかりませんが、最適な解決策は、 ApplicationPermissionManagerを使用して、起動時に必要なアクセス許可をテストすることです。アプリケーション機能にとって重要なアクセス許可がない場合 (カメラはバーコード スキャンにとって重要です)、アクセス許可が必要な理由を提供できる API を介してアクセス許可を要求する必要があります。これは、制御されたリソースへのアクセスを要求する前に行う必要があります。重要な権限がユーザーによって付与されていない場合は、メッセージを表示して正常に終了できます。

完全を期すために、リソースがアプリケーション機能にとって重要でない場合、アプリケーションは最初の起動時に一度アクセス許可を要求し、アクセス許可が与えられていない場合は、そのアクセス許可を必要とする機能を無効にする必要があります。

リソースが必要なときにデフォルトのパーミッション要求を使用することは、ほとんどのユーザーにとって混乱を招き、より新しいシステム (BB10、iOS、Android) で使用されるパーミッション付与方法と一致しません。一方、初回起動時に必要なすべてのパーミッションを要求すると、ユーザー エクスペリエンスが向上し、コードでの処理が容易になります。

于 2013-02-16T03:41:38.583 に答える