質問編集履歴

1

カレンダーの保存の方法を変更してみました。

2020/02/29 09:41

投稿

jafirm
jafirm

スコア6

test CHANGED
File without changes
test CHANGED
@@ -4,25 +4,25 @@
4
4
 
5
5
 
6
6
 
7
+ 実行はされるのですが、
7
8
 
9
+ カレンダーアプリ見ても
8
10
 
9
- import androidx.appcompat.app.AppCompatActivity;
11
+ 2月21日7時30分に「タイトル」が保存されません。
10
12
 
11
-
12
-
13
- import android.content.Intent;
14
-
15
- import android.os.Bundle;
13
+ アドバイスお願いします。
16
-
17
- import android.provider.CalendarContract;
18
-
19
-
20
-
21
- import java.util.Calendar;
22
14
 
23
15
 
24
16
 
25
17
  public class MainActivity extends AppCompatActivity {
18
+
19
+
20
+
21
+
22
+
23
+ private final int REQUEST_PERMISSION = 10;
24
+
25
+
26
26
 
27
27
 
28
28
 
@@ -32,36 +32,140 @@
32
32
 
33
33
  super.onCreate(savedInstanceState);
34
34
 
35
- setContentView(R.layout.activity_main);
35
+ readContentActivity();
36
+
37
+ }
38
+
39
+
40
+
41
+ // Permissionの確認
42
+
43
+ public void checkPermission() {
44
+
45
+ // 既に許可している
46
+
47
+ if (checkSelfPermission(Manifest.permission.WRITE_CALENDAR) !=
48
+
49
+ PackageManager.PERMISSION_GRANTED) {
50
+
51
+ requestLocationPermission();
52
+
53
+ }
54
+
55
+ }
56
+
57
+
58
+
59
+ // 許可を求める
60
+
61
+ private void requestLocationPermission() {
62
+
63
+ if (shouldShowRequestPermissionRationale(
64
+
65
+ Manifest.permission.WRITE_CALENDAR)) {
66
+
67
+ requestPermissions(new String[]{Manifest.permission.WRITE_CALENDAR},
68
+
69
+ REQUEST_PERMISSION);
70
+
71
+
72
+
73
+ } else {
74
+
75
+ Toast toast = Toast.makeText(this,
76
+
77
+ "許可されないとアプリが実行できません", Toast.LENGTH_SHORT);
78
+
79
+ toast.show();
80
+
81
+
82
+
83
+ requestPermissions(new String[]{Manifest.permission.WRITE_CALENDAR,},
84
+
85
+ REQUEST_PERMISSION);
86
+
87
+
88
+
89
+ }
90
+
91
+ }
92
+
93
+
94
+
95
+ // 結果の受け取り
96
+
97
+ @Override
98
+
99
+ public void onRequestPermissionsResult(
100
+
101
+ int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
102
+
103
+ if (requestCode == REQUEST_PERMISSION) {
104
+
105
+ // 使用が許可された
106
+
107
+ if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
108
+
109
+ // それでも拒否された時の対応
110
+
111
+ Toast toast = Toast.makeText(this,
112
+
113
+ "これ以上なにもできません", Toast.LENGTH_SHORT);
114
+
115
+ toast.show();
116
+
117
+ }
118
+
119
+ }
120
+
121
+ }
122
+
123
+
124
+
125
+ public void readContentActivity() {
36
126
 
37
127
 
38
128
 
39
129
  Calendar beginTime = Calendar.getInstance();
40
130
 
41
- beginTime.set(2020,1,21,7,30);
131
+ beginTime.set(2020, 2, 21, 7, 30);
42
132
 
43
133
  Calendar endTime = Calendar.getInstance();
44
134
 
45
- endTime.set(2020,1,21,8,30);
135
+ endTime.set(2020, 2, 21, 8, 30);
46
136
 
47
- Intent intent = new Intent(Intent.ACTION_INSERT)
137
+ ContentResolver cr = getContentResolver();
48
138
 
49
- .setData(CalendarContract.Events.CONTENT_URI)
139
+ ContentValues values = new ContentValues();
50
140
 
51
- .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis())
141
+ values.put(Events.CALENDAR_ID, 1);
52
142
 
53
- .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis())
143
+ values.put(Events.TITLE, "タイトル");
54
144
 
55
- .putExtra(CalendarContract.Events.TITLE, "めめし")
145
+ values.put(Events.DESCRIPTION, "説明");
56
146
 
57
- .putExtra(CalendarContract.Events.AVAILABILITY, CalendarContract.Events.AVAILABILITY_BUSY);
147
+ values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());
58
148
 
149
+ values.put(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis());
150
+
59
- startActivity(intent);
151
+ values.put(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis());
60
152
 
61
153
 
62
154
 
63
155
 
64
156
 
157
+ if (checkSelfPermission(Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
158
+
159
+ checkPermission();
160
+
161
+ }
162
+
163
+ cr.insert(Events.CONTENT_URI, values);
164
+
65
165
  }
66
166
 
167
+
168
+
169
+
170
+
67
171
  }