4

権限とプロンプトについていくつか質問があります。最も重要なことは、これはデータ接続の確立と GPS の使用に関係しています。

質問

1. プロンプトと許可 - 通知を削除しますか?:さまざまなデバイスにアプリ (署名済み) をインストールするときに、ユーザーにデータ接続の作成を求めるデバイスとそうでないデバイスがあります (接続が確立されたばかりです)。権限を確認すると、両方のデバイスでデータ接続がプロンプトに設定されています。一方のデバイスは接続を確立するだけで、もう一方のデバイスはプロンプトを必要とするのはなぜですか? 注: 両方のデバイスは同じキャリア (バージョン) にあり、BES によって制限されていません。

2. 最近のビルドでの許可ダイアログ: 最近のビルドでは、ユーザーはデータ要求を許可するよう求められます。以前のバージョンのビルドでは、このプロンプトは発生しませんでした (両方のビルドがプロンプトを必要とする可能性のあるデータ接続を作成しますが)。私の人生では、どのような変化があり、その結果、現在ポンプが発生しているのかわかりません。これらのプロンプトが表示されないように、ビルド/プロジェクト/ファイルをチェックインする必要があるものはありますか?

3. インストール時に権限を設定しますか?:アプリのインストール時に権限を強制する (許可するなど) 方法はありますか? 私はinvokePermissionsRequestを実行できることを知っていますが、それはアプリの実行中に発生します。理想的には、ユーザーの関与なしに、またはインストール中にアクセス許可を設定したいと考えています。

注意すべきいくつかの事実:

  • 4.2.1 以降の開発
  • アプリは署名されています
  • アプリはデータ接続と GPS を利用します
4

3 に答える 3

0

質問1。ファイアウォールが有効になっているかどうかを確認してください。オプション→セキュリティオプション→ファイアウォール。有効になっている場合、GPS にアクセスしようとするとプロンプトが表示されます。有効になっていない場合、プロンプトは表示されません。

質問2。これは、以前のバージョンのアプリのステータスに関係している可能性があります。既存のアプリの上にインストールする場合、blackberry は、既に尋ねたプロンプトとその回答を「記憶」します。一方、インストールする前にアンインストールすると、blackberry は「忘れられた」状態になります。

質問#3。インストール時にカスタム コードを実行する方法はありません。

于 2010-02-19T22:17:13.560 に答える
0

質問 3 に関しては、プログラムが起動時に自動実行されるように設定されている場合、インストール時に実行されます。これは、アプリケーションやライブラリがインストール時にシステム フックに結び付けられる方法です。アップグレードに再起動が必要であるとシステムが判断する可能性は常にあるため、再起動には注意する必要があります。この場合、コードは再起動プロセスの後半に実行されますが、UI が利用可能になる前です。したがって、このコードでは、アクセス許可が正しいかどうかを確認する必要があります。そうでない場合は、UI が実行されるまで待ってから (まだ実行されていない場合)、変更を求める呼び出しを行います。

于 2010-02-20T00:25:10.880 に答える
0

ご質問の 1 と 2 については、使用している OS によって動作が異なる場合があります。OS 4.7 がリリースされたときに、多くの権限が変更/名前変更/作成されました。たとえば、OS 4.5 に対して私が要求するアクセス許可は次のとおりです。

ApplicationPermissions.PERMISSION_FILE_API
ApplicationPermissions.PERMISSION_INTER_PROCESS_COMMUNUCATION
ApplicationPermissions.PERMISSION_CHANGE_DEVICE_SETTINGS
ApplicationPermissions.PERMISSION_EXTERNAL_CONNECTIONS
ApplicationPermissions.PERMISSION_INTERNAL_CONNECTIONS
ApplicationPermissions.PERMISSION_WIFI
ApplicationPermissions.PERMISSION_EMAIL
ApplicationPermissions.PERMISSION_HANDHELD_KEYSTORE

そして、OS 4.7 に対して私が要求するパーミッションは次のとおりです。

ApplicationPermissions.PERMISSION_FILE_API
ApplicationPermissions.PERMISSION_CROSS_APPLICATION_COMMUNICATION
ApplicationPermissions.PERMISSION_DEVICE_SETTINGS
ApplicationPermissions.PERMISSION_INTERNET
ApplicationPermissions.PERMISSION_SERVER_NETWORK
ApplicationPermissions.PERMISSION_WIFI
ApplicationPermissions.PERMISSION_EMAIL
ApplicationPermissions.PERMISSION_SECURITY_DATA,     

多くの権限の名前が変更されていることがわかります。OS を認識し、特定のアクセス許可を要求するには、コードを更新する必要がある場合があります。

質問 3 については、インストール時にコードを実行する方法はありません。あなたができる最善の方法は、アプリケーションを「起動時に自動実行」にしてからチェックを実行することです。ただし、起動時にアクセス許可要求ダイアログが表示されてユーザーが混乱する可能性があるため、これはより悪い解決策になる可能性があります。

最善の解決策は、アプリケーションを起動するたびに十分な権限があることを確認することです。そうでない場合は、必要なすべての特権を要求し、すべてを可能な限り適切に処理します。これを正常に実行すると、ユーザーは、アプリケーションが最初に起動されたときにアクセス許可を処理するだけで済みます (後で自分でアクセス許可をいじらない限り)。

于 2010-01-18T17:00:47.483 に答える