マニフェスト権限をアプリケーションに追加するにはどうすればよいですか?
-
24-09-2019 - |
質問
を使用してHTTPリンクにアクセスしようとしています HttpURLConnection
Android でファイルをダウンロードしようとしましたが、次の警告が表示されます。 LogCat
:
警告/システム.エラー(223):java.net.SocketException:権限が拒否されました (インターネット権限が不足している可能性があります)
私が追加しました android.Manifest.permission
私のアプリケーションに適用しましたが、それでも同じ例外が発生します。
解決
は、あなたのLogCat
のエラーの説明から設定された権限を持っていないと仮定すると、ここではインターネットへのアクセスを持っている私のAndroidManifest.xml
ファイルのための私の内容です
<manifest xlmns:android...>
...
<uses-permission android:name="android.permission.INTERNET" />
<application ...
</manifest>
それ以外に、あなたは、インターネットからファイルをダウンロードするには問題ないはずです。
他のヒント
誰かが同じ問題で苦労している場合に備えて、 大文字と小文字が区別されます ステートメントなので、大文字と小文字が間違っていると、アプリケーションは許可を取得できないことを意味します。
間違っている
<uses-permission android:name="ANDROID.PERMISSION.INTERNET" />
正しい
<uses-permission android:name="android.permission.INTERNET" />
この問題は次のような場合に発生する可能性があります。IDE のオートコンプリートについて
あなたの開発のためのEclipse ADTプラグインを使用している場合は、Androidのマニフェストエディタ(プロジェクトからのオープニングAndroidManifest.xml
のデフォルトアクションは、リストをファイルでなければなりません)で開いAndroidManifest.xml
ます。
その後、エディタ(Permissions
)の底部に沿ってManifest - Application - Permissions - Instrumentation - AndroidManifest.xml
]タブを選択し、その後、(例えばAdd...
、必要に応じていずれかでUses Permission
android.permission.INTERNET
をクリックし、右側のドロップダウンから希望の許可を選択するか、単にコピー&ペーストあなたが必要なアクセス許可)。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.photoeffect"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="com.example.towntour.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar" >
<activity
android:name="com.photoeffect.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
は、アプリケーションのマニフェストファイルに次の行をコピーし、<application>
タグの前に貼り付けます。
<uses-permission android:name="android.permission.INTERNET"/>
<application/>
タグ以下の権限を配置するには動作しますが、あなたに警告を与えます。だから、<application/>
タグの宣言の前に置くように注意してください。
日食を使用する場合は、次の手順に従います
1)ダブルエディタ
にそれを表示するためにマニフェストをクリックしてください
2)マニフェストエディタ
以下の権限]タブをクリックします。
3)[追加]ボタンをクリックして
4)使用の許可をクリックして表示されるダイアログで。 (リストの最後の項目々ussually)
5)お知らせrigth側に表示されますが、「android.permission.INTERNETあなた」
を選択するとの見方
6)[OK]を、一連の、最後に保存します。
これは
それはまた、アプリケーションにINTERNET権限を追加することとの関連で興味深いものがあります:
Googleはまた、効果的にインターネットへのアクセス許可を削除し、各アプリのインターネットアクセスを与えています。ああ、確かに、Androidの開発者は、まだ一緒にアプリを入れたときに、彼らはインターネットへのアクセスを望ん宣言する必要があります。プロンプトを表示せずに、今自動更新でのインターネットアクセスを得ることができ、インターネットへのアクセスを持っていないアプリや、現在のアプリケーションをインストールするときしかし、ユーザーは、もはやインターネットへのアクセス許可を確認することができます。
ソース:<のhref = "http://www.howtogeek.com/190863/androids-app-permissions-were-just-simplified-now-theyre-much-less-secure/" のrel = "nofollowを" > http://www.howtogeek.com/190863/androids-app-permissions-were-just-simplified-now-theyre-much-less-secure/ の
ボトムラインは、あなたがまだマニフェストファイルが、アプリケーションでINTERNET権限を追加することが必要であることであるが、新たな許可のためにそれらを求めることなく、ユーザーのデバイス上で更新されます。
私は遅れていますが、私は答えを完了したい。
の許可は、
のようにmanifest.xml
に追加されます
<uses-permission android:name="android.permission.INTERNET"/>
これは、標準の権限が何の許可を求めるメッセージが表示されていないところをのために十分ですユーザーへ。しかし、危険な許可の場合のみ、マニフェストに権限を追加するだけでは十分ではありません。 のアンドロイドのdoc のを参照してください。カメラのように、ストレージのパーミッションます。
<uses-permission android:name="android.permission.CAMERA"/>
あなたはにする必要がありますを、ユーザーからの許可を求めるのの。私は広く許可を尋ねるためのライブラリを使用している RxPermission のライブラリを使用しています。それは私たちが許可を求めるために記述する必要があり、長いコードがあるので。
RxPermissions rxPermissions = new RxPermissions(this); // where this is an Activity instance // Must be done during an initialization phase like onCreate
rxPermissions
.request(Manifest.permission.CAMERA)
.subscribe(granted -> {
if (granted) { // Always true pre-M
// I can control the camera now
} else {
// Oups permission denied
}
});
あなたのアプリケーションに、このライブラリを追加します。
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.tbruyelle:rxpermissions:0.10.1'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
}