いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Flutterメモ-05 (Androidでネットワーク通信をする場合の注意点)

概要

絶対に忘れちゃいそうなので、ここにメモメモ。Flutterに限ることではないですが。

FlutterでAndroidアプリつくっていて、外部と通信する処理(例えばREST-APIを呼び出し)する場合

以下のパーミッションをマニフェストに追加しておかないと、実機インストールで動かした場合に

動きません。

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="xxx.xxx.xxx.xxx"> 
    <!-- https://flutter.dev/docs/development/data-and-backend/networking --> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
   <application

これ、USBケーブルで実機を接続している状況とかだとパーミッション設定してなくても通信できるんですよね・・。

LogCat で見て、やっと分かりました。

んで、ちゃんとFlutterのドキュメント見るとしっかりと書いてありましたw

flutter.dev

Android apps must declare their use of the internet in the Android manifest (AndroidManifest.xml )

Android側のドキュメントにもしっかりと書いてありました。

developer.android.com

アプリでネットワーク オペレーションを行うには、マニフェストに次の権限を含める必要があります。

f:id:gsf_zero1:20210727132602p:plain

注: Internet 権限と ACCESS_NETWORK_STATE 権限はどちらも標準の権限です。つまり、インストール時に付与され、実行時にリクエストする必要はありません。

要は、「ちゃんとドキュメント読め」ってことでした。


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com