インターネットアクセスを許可する設定をAndroidManifest.xmlのどこに書くのか
インターネットのアクセスパーミッションだけとりあえずONにしたくて以下のページに辿り着いたんだけど、ここからuses-permission
をどこに書けばいいのかわからなくて困っていた。で、解決したので記す。
と言ってもAndroidManifestのドキュメントに書いてある通りなんだけど
Android アプリは、プライベートなユーザーデータ(連絡先や SMS など)や特定のシステム機能(カメラやインターネット アクセス)にアクセスするためのパーミッションをリクエストする必要があります。 それぞれのパーミッションは一意のラベルで識別されます。 たとえば、アプリで SMS メッセージを送信する必要がある場合、マニフェストに次の行を記述する必要があります。
とのこと。要するにこう。
<manifest ... > <uses-permission android:name="android.permission.SEND_SMS"/> ... </manifest>
インターネットアクセスのパーミッションもこれと同じように書く必要がある。
<manifest ... > <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> ... </manifest>
全体を一応記しておく。
ちなみに、Flutterプロジェクトの場合は<project_dir>/android/app/src/main/AndroidManifest.xml
にファイルがある。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.app"> <!-- io.flutter.app.FlutterApplication is an android.app.Application that calls FlutterMain.startInitialization(this); in its onCreate method. In most cases you can leave this as-is, but you if you want to provide additional functionality it is fine to subclass or reimplement FlutterApplication and put your custom class here. --> <application android:name="io.flutter.app.FlutterApplication" android:label="app" android:icon="@mipmap/ic_launcher"> <activity android:name=".MainActivity" android:launchMode="singleTop" android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <!-- Don't delete the meta-data below. This is used by the Flutter tool to generate GeneratedPluginRegistrant.java --> <meta-data android:name="flutterEmbedding" android:value="2" /> </application> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> </manifest>
おわりに
思いの外インターネットの海をさまよったので、きっと誰かの役に立つでしょう。