回答編集履歴

3

修正の修正

2016/08/24 07:02

投稿

abs123
abs123

スコア1280

test CHANGED
@@ -16,27 +16,11 @@
16
16
 
17
17
  ```Java
18
18
 
19
-
20
-
21
- //Unityから呼ばれる
22
-
23
19
  static public void unityCall(Activity activity) {
24
-
25
- // Android 6, API 23以上でパーミッシンの確認
26
20
 
27
21
  if(Build.VERSION.SDK_INT >= 23){
28
22
 
29
- NativeDialog n=new NativeDialog();
30
-
31
- n.Api23(activity);
23
+ Api23(activity);
32
-
33
- }
34
-
35
- else{ //Android 6未満
36
-
37
- NativeDialog n= new NativeDialog();
38
-
39
- n.showLineNumber();
40
24
 
41
25
  }
42
26
 
@@ -44,23 +28,11 @@
44
28
 
45
29
 
46
30
 
47
- //Android 6以上
48
-
49
- @TargetApi(Build.VERSION_CODES.M)
50
-
51
- protected void Api23(Activity activity) {
31
+ static void Api23(Activity activity) {
52
-
53
- //Permissionをチェック
54
32
 
55
33
  if (activity.checkSelfPermission(Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED) {
56
34
 
57
- // 権限がない場合はリクエスト
58
-
59
35
  activity.requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
60
-
61
- } else {
62
-
63
- showLineNumber();
64
36
 
65
37
  }
66
38
 
@@ -77,5 +49,3 @@
77
49
  とりあえず「Logcat」というものが見れるようになれば、
78
50
 
79
51
  Java側の処理で落ちたときのエラーを確認できると思います。
80
-
81
-

2

修正

2016/08/24 07:02

投稿

abs123
abs123

スコア1280

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

1

確認ミス

2016/08/24 06:57

投稿

abs123
abs123

スコア1280

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