2

それが簡単な質問であることは知っていますが、答えが見つかりません。実際には、関連する 3 つの質問があります。

  1. コードにuses-permissionマニフェスト要素が必要な場合、Eclipse はそれをマニフェストに自動的に追加しますか?

  2. Eclipse が自動的に追加しない場合、アプリに必要なアクセス許可をどのように知ることができますか? もちろん、このリストはありますが、このリストを調べて、自分のアプリがこれらの各権限に該当するかどうかを確認するのは困難です。

  3. Eclipse が許可を自動的に追加せず、私が追加しなかった場合、どうすればわかりますか? アプリはエミュレーターにインストールできませんか? エミュレーターにインストールしますが、権限のないものにアクセスしようとすると強制終了しますか? それとも、調べるために実際のデバイスに apk をインストールする必要がありますか?

4

3 に答える 3

3

コードに uses-permission マニフェスト要素が必要な場合、Eclipse はそれをマニフェストに自動的に追加しますか?

いいえ。

アプリに必要なアクセス許可を知るにはどうすればよいですか?

一般に、JavaDocs を読むと、必要なアクセス許可を適切に指摘してくれます。そうしないと、アプリがSecurityException.

Eclipse が許可を自動的に追加せず、私が追加しなかった場合、どうすればわかりますか?

上記を参照。

エミュレーターにインストールしますが、権限のないものにアクセスしようとすると強制終了しますか?

正しい。

于 2013-08-16T18:27:11.450 に答える
2

Eclipse は権限を自動的に追加しません。ただし、権限が必要な機能を使用しようとすると、権限がないことが通知されます。以下は、次の Android リソース ページからの抜粋ですPermissionsリンク

多くの場合、アクセス許可が失敗すると、アプリケーションに SecurityException がスローされます。ただし、これはすべての場所で発生するとは限りません。たとえば、sendBroadcast(Intent) メソッドは、メソッド呼び出しが返された後、データが各受信者に配信されるときにアクセス許可をチェックするため、アクセス許可の失敗があっても例外を受け取ることはありません。ただし、ほとんどの場合、権限の失敗がシステム ログに出力されます。

3 番目の質問に対する回答は次のとおりです。

ただし、ほとんどの場合、権限の失敗がシステム ログに出力されます。

Logcat で何が表示されるか疑問に思っている場合に備えて、次のようにします。

11-20 08:08:47.766: E/AndroidRuntime(9380): java.lang.SecurityException: BLUETOOTH 権限が必要です: ユーザー 10111 にも現在のプロセスにも android.permission.BLUETOOTH がありません。

于 2013-08-16T18:31:15.970 に答える
1

uses-permissionEclipse は、マニフェストに を自動的に追加しません。パーミッションを追加するのを忘れて、コードのその部分に到達したときにアプリが失敗したことがあります。正確なエラーを思い出すことはできませんが、使用しようとした方法を使用するには許可が必要であることが言及されており、どの許可を教えてくれたと思います.

追加しないと、すぐにわかります。

于 2013-08-16T18:27:40.650 に答える