===== 190828 unityアプリをandroidスマホにインストールした後に権限の許可 ===== unityアプリでgpsを利用するようなときは、androidスマホにインストールした後に、ユーザに権限を許可してもらう必要があります。 ===== テストのみの簡単な方法 ===== 開発者が自分で動作確認するときの方法 https://akira-watson.com/android/gps.html [Android] GPSで位置情報を取得するアプリを作る 2019/8/14 (引用ここから) ---- テストのみの簡易的な方法: この実装無しでも可能です。(但し、テストのみ) アプリをインストール起動後、「設定」「アプリと通知」から該当アプリにて 「権限」から「位置情報」をOnにすれば、面倒なpermissionのチェクコードが無くても動くことは動きます。 ---- (引用ここまで) ===== Unity公式の解説ページ ===== https://docs.unity3d.com/ja/current/Manual/android-manifest.html Unity User Manual (2018.3)プラットフォーム別情報AndroidAndroid マニフェスト →こちらの内容を理解できるようにしたい、、、 ===== GPS権限許可のダイアログ表示(1) UnityAndroidRuntimePermissionsアセットの利用 ===== UnityAndroidRuntimePermissionsアセットを利用する方法があるそうです。(未確認) -自分のUnityアプリに、https://assetstore.unity.com/packages/tools/integration/android-runtime-permissions-117803 のアセットをインストール -UnityのProjectタブの中に、Plugins/Android/フォルダを作成する -(Unity のインストール先)\Editor\Data\PlaybackEngines\AndroidPlayer\Apk\AndroidManifest.xmlの内容(AndroidManifest.xml)を、上記フォルダにコピーする -AndroidManifest.xmlの...の間に、を追加する -UnityでEmpty Objectを作成し、GameDirectorという名前に変更する -Unityで新規C#Scriptを作成してGameDirectorという名前に変更し、上記のGameDirectorオブジェクトにアタッチする -GameDirector.csのvoid Start(){}の中に、以下を記載すると、ゲーム起動時にGPSデータ接続の可否をプレイヤーが選択できるようになる AndroidRuntimePermissions.Permission result = AndroidRuntimePermissions.RequestPermission( "android.permission.WRITE_EXTERNAL_STORAGE" ); if( result == AndroidRuntimePermissions.Permission.Granted ) Debug.Log( "We have permission to access external storage!" ); else Debug.Log( "Permission state: " + result ); https://forum.unity.com/threads/open-source-androidruntimepermissions-manage-runtime-permissions-synchronously-on-android-m.528833/ [Open Source] AndroidRuntimePermissions - manage runtime permissions "synchronously" on Android M+ https://github.com/yasirkula/UnityAndroidRuntimePermissions ...: To write data on external storage, you need the android.permission.WRITE_EXTERNAL_STORAGE permission. https://qiita.com/kingyo222/items/404e8645821e54c35b41 @kingyo222 2019年05月07日に投稿 Unity:アセット(Asset)のインポートの方法(5種類!?) ==== AndroidManifest.xmlについて ==== http://baba-s.hatenablog.com/entry/2018/12/25/155000 2018-12-25 【Unity】デフォルトの AndroidManifest.xml が保存されている場所 (引用ここから) 【Unity のインストール先】\Editor\Data\PlaybackEngines\AndroidPlayer\Apk (引用ここまで) https://blog.wizaman.net/archives/1026 UnityでAndroidManifest.xmlを使う 11月14 2016 https://blog.wizaman.net/archives/1010 AndroidのpersistentDataPathがカオス 10月11 2016 https://freelyapps.net/watch-android-manifext-in-apk/ apkの中にあるAndroidManifest.xmlの確認方法 2015/4/17 2018/1/16 https://nobuo-create.net/manifest/ 【Hello world!の仕組み1】 マニフェストファイルについて time 2014/10/24 https://qiita.com/izuki_y/items/8cb59b12fef6727ed87b @izuki_y 2017年04月14日に更新 AndroidManifest.xml の備忘録 (引用ここから) (引用ここまで) https://seesaawiki.jp/w/bokkuri_orz/d/Android%20-%20AndroidManifest.xml Android - AndroidManifest.xml編集する bokkuri_orz bokkuri_orz 2014.05.31 20:54:51 https://developer.android.com/training/permissions/requesting.html Android Developers Docs ガイド アプリの権限をリクエストする https://qiita.com/nein37/items/da991b02441fa4da5432 @nein37 2014年08月26日に投稿 設定の罠 https://so-zou.jp/mobile-app/tech/android/manifest/uses-permission.htm 要素 ===== GPS権限許可のダイアログ表示(2) android-support-v4.jarの利用 ===== https://teratail.com/questions/182750 Unityで、Androidの「現在地の権限」を付与したい nagi2011 投稿 2019/04/03 によると、以下のようにするとできるそうです。(未確認) -Assets\Plugins\Android配下のAndroidManifest.xmlに、以下のパーミッションを設定する -android-support-v4.jarをダウンロードする -Plugins/Androidフォルダを作り、そこにandroid-support-v4.jarを配置する -UnityでEmpty Objectを作成し、GameDirectorという名前に変更する -Unityで新規C#Scriptを作成してGameDirectorという名前に変更し、上記のGameDirectorオブジェクトにアタッチする -GameDirector.csの中に、以下を記載すると、ゲーム起動時にGPSデータ接続の可否をプレイヤーが選択できるようになる static bool CheckPermission (string permission) { using (var unityPlayer = new AndroidJavaClass ("com.unity3d.player.UnityPlayer")) using (var activity = unityPlayer.GetStatic ("currentActivity")) using (var compat = new AndroidJavaClass ("android.support.v4.app.ActivityCompat")) { var check = compat.CallStatic ("checkSelfPermission", activity, permission); if (check == 0) return true; int REQUEST_CODE = 1; compat.CallStatic ("requestPermissions", activity, new String[] { permission }, REQUEST_CODE); //再チェック check = compat.CallStatic ("checkSelfPermission", activity, permission); if (check == 0) return true; // "設定からパーミッションを許可してください。機能が使用できません。"; } return false; } void Start() { CheckPermission ("android.permission.ACCESS_FINE_LOCATION"); } https://qiita.com/Takaaki_Ichijo/items/d9a7639f2dc4d1060616 @Takaaki_Ichijo 2017年11月28日に更新 NCMB Unity SDKがAdMob等のAndroidプラグインと競合する場合の解決 http://edom18.hateblo.jp/entry/2018/03/20/200243 2018-03-20 Unity向けにAndroidのネイティブプラグインを作成する Android C# Java Plugin Unity https://freelyapps.net/correspond-to-permission-of-android6/ UnityでAndroid6.0におけるパーミッションを対応する 2016/2/22 2018/3/28 →これが一番の候補か? (引用ここから) Plugins/Androidフォルダを作り、そこにandroid-support-v4.jarを置いておけば解決できます。 (引用ここからまで) https://teratail.com/questions/203447 Unityでのandroid-support-v4.jarの入手法と使用法を教えてください OROCHI_TUNGUS 投稿 2019/07/30 https://docs.unity3d.com/ja/current/Manual/AndroidAARPlugins.html AAR プラグインと Android ライブラリ 2018.3 Unityマニュアル https://monry.hatenablog.com/entry/2019/03/12/163447 2019-03-12 Unity Android ビルドの Minify オプションの罠 https://m3-soft.com/2019/02/25/1050/ UnityでNCMBとアドフリくんのSDKの導入方法(エラーで死にかけた) by asano on 2019年2月25日 ===== リンク ===== [[z_blog:2019:190716_map|190716 map]]