質問するログイン新規登録

回答編集履歴

3

修正の修正

2016/08/24 07:02

投稿

abs123
abs123

スコア1280

answer CHANGED
@@ -7,29 +7,15 @@
7
7
 
8
8
  多分これで動くと思います。
9
9
  ```Java
10
-
11
- //Unityから呼ばれる
12
10
  static public void unityCall(Activity activity) {
13
- // Android 6, API 23以上でパーミッシンの確認
14
11
  if(Build.VERSION.SDK_INT >= 23){
15
- NativeDialog n=new NativeDialog();
16
- n.Api23(activity);
12
+ Api23(activity);
17
13
  }
18
- else{ //Android 6未満
19
- NativeDialog n= new NativeDialog();
20
- n.showLineNumber();
21
- }
22
14
  }
23
15
 
24
- //Android 6以上
25
- @TargetApi(Build.VERSION_CODES.M)
26
- protected void Api23(Activity activity) {
16
+ static void Api23(Activity activity) {
27
- //Permissionをチェック
28
17
  if (activity.checkSelfPermission(Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED) {
29
- // 権限がない場合はリクエスト
30
18
  activity.requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
31
- } else {
32
- showLineNumber();
33
19
  }
34
20
  }
35
21
  ```
@@ -37,4 +23,4 @@
37
23
  エラー確認方法については・・・
38
24
  Unity触ったことないのでわかんないです・・・
39
25
  とりあえず「Logcat」というものが見れるようになれば、
40
- Java側の処理で落ちたときのエラーを確認できると思います。
26
+ Java側の処理で落ちたときのエラーを確認できると思います。

2

修正

2016/08/24 07:02

投稿

abs123
abs123

スコア1280

answer CHANGED
@@ -1,23 +1,33 @@
1
- よくよく調べたらrequestPermissions、Contextになかったので少々お待ちを・・・
1
+ unityCallを実行する際渡しているcontext、実体はActivityなので
2
+ unityCallの引数ではActivityとして受け取るようにします。
2
3
 
4
+ api23にもActivityを渡してやって、そのActivityからそれぞれ実行してください。
3
5
 
4
- ----------------------------------------------------------------------------
6
+ NativeDialogがActivityを継承する必要はありません。
5
7
 
8
+ 多分これで動くと思います。
9
+ ```Java
6
10
 
11
+ //Unityから呼ばれる
12
+ static public void unityCall(Activity activity) {
13
+ // Android 6, API 23以上でパーミッシンの確認
14
+ if(Build.VERSION.SDK_INT >= 23){
7
- checkSelfPermission()、requestPermissions()
15
+ NativeDialog n=new NativeDialog();
16
+ n.Api23(activity);
17
+ }
18
+ else{ //Android 6未満
8
- これらのメソッドは、Contextクラスが持っています。
19
+ NativeDialog n= new NativeDialog();
20
+ n.showLineNumber();
21
+ }
22
+ }
9
23
 
10
- unityCallを実行する際に渡しているContextがそのまま使えると思うので、
11
- api23にもContextを渡してやって、そのContextからそれぞれ実行してください。
24
+ //Android 6以上
12
-
13
- NativeDialogがActivityを継承する必要はありません。
25
+ @TargetApi(Build.VERSION_CODES.M)
14
-
15
- ```Java
16
- protected void Api23(Context context) {
26
+ protected void Api23(Activity activity) {
17
27
  //Permissionをチェック
18
- if (context.checkSelfPermission(Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED) {
28
+ if (activity.checkSelfPermission(Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED) {
19
29
  // 権限がない場合はリクエスト
20
- context.requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
30
+ activity.requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
21
31
  } else {
22
32
  showLineNumber();
23
33
  }
@@ -27,4 +37,4 @@
27
37
  エラー確認方法については・・・
28
38
  Unity触ったことないのでわかんないです・・・
29
39
  とりあえず「Logcat」というものが見れるようになれば、
30
- Java側の処理で落ちたときのエラーを確認できると思います。
40
+ Java側の処理で落ちたときのエラーを確認できると思います。

1

確認ミス

2016/08/24 06:57

投稿

abs123
abs123

スコア1280

answer CHANGED
@@ -1,3 +1,9 @@
1
+ よくよく調べたらrequestPermissions、Contextになかったので少々お待ちを・・・
2
+
3
+
4
+ ----------------------------------------------------------------------------
5
+
6
+
1
7
  checkSelfPermission()、requestPermissions()
2
8
  これらのメソッドは、Contextクラスが持っています。
3
9