サルでもわかるWEBプログラミング

フリーソフトのみでホームページ作成

ユーザ用ツール

サイト用ツール


z_blog:2019:190828_unity_gps


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アセットを利用する方法があるそうです。(未確認)

  1. 自分のUnityアプリに、https://assetstore.unity.com/packages/tools/integration/android-runtime-permissions-117803 のアセットをインストール
  2. UnityのProjectタブの中に、Plugins/Android/フォルダを作成する
  3. (Unity のインストール先)\Editor\Data\PlaybackEngines\AndroidPlayer\Apk\AndroidManifest.xmlの内容(AndroidManifest.xml)を、上記フォルダにコピーする
  4. AndroidManifest.xmlの<manifest>…</manifest>の間に、<uses-permission android:name=“android.permission.ACCESS_FINE_LOCATION”>を追加する
  5. UnityでEmpty Objectを作成し、GameDirectorという名前に変更する
  6. Unityで新規C#Scriptを作成してGameDirectorという名前に変更し、上記のGameDirectorオブジェクトにアタッチする
  7. 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

<manifest>…</manifest>:

<uses-permission android:name=“android.permission.RECORD_AUDIO”>

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 の備忘録

(引用ここから)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="string">

    <application>

    </application>

</manifest>

(引用ここまで)

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日に投稿
<uses-permission>設定の罠

https://so-zou.jp/mobile-app/tech/android/manifest/uses-permission.htm
<uses-permission>要素

GPS権限許可のダイアログ表示(2) android-support-v4.jarの利用

https://teratail.com/questions/182750
Unityで、Androidの「現在地の権限」を付与したい
nagi2011
投稿 2019/04/03

によると、以下のようにするとできるそうです。(未確認)

  1. Assets\Plugins\Android配下のAndroidManifest.xmlに、以下のパーミッションを設定する

<uses-permission android:name=“android.permission.ACCESS_FINE_LOCATION” />
<uses-permission android:name=“android.permission.ACCESS_COARSE_LOCATION”/>

  1. android-support-v4.jarをダウンロードする
  2. Plugins/Androidフォルダを作り、そこにandroid-support-v4.jarを配置する
  3. UnityでEmpty Objectを作成し、GameDirectorという名前に変更する
  4. Unityで新規C#Scriptを作成してGameDirectorという名前に変更し、上記のGameDirectorオブジェクトにアタッチする
  5. GameDirector.csの中に、以下を記載すると、ゲーム起動時にGPSデータ接続の可否をプレイヤーが選択できるようになる
        static bool CheckPermission (string permission)
        {
            using (var unityPlayer = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"))
            using (var activity = unityPlayer.GetStatic<AndroidJavaObject> ("currentActivity"))
            using (var compat = new AndroidJavaClass ("android.support.v4.app.ActivityCompat")) {
                var check = compat.CallStatic<int> ("checkSelfPermission", activity, permission);

                if (check == 0)  return true;

                int REQUEST_CODE = 1;
                compat.CallStatic ("requestPermissions", activity, new String[] {
                    permission
                }, REQUEST_CODE);

                //再チェック
                check = compat.CallStatic<int> ("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/190828_unity_gps.txt · 最終更新: 2019/08/28 by adash333

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki