質問編集履歴
4
readContentActivityを修正したコードを追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -239,4 +239,30 @@
|
|
239
239
|
|
240
240
|
|
241
241
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
242
|
+
```
|
243
|
+
|
244
|
+
以下が完成したうまくいったコードで上記のreadContentActivityを修正しました。
|
245
|
+
```
|
246
|
+
|
247
|
+
public void readContentActivity() {
|
248
|
+
|
249
|
+
Calendar beginTime = Calendar.getInstance();
|
250
|
+
beginTime.set(2020, 2, 21, 7, 30);
|
251
|
+
Calendar endTime = Calendar.getInstance();
|
252
|
+
endTime.set(2020, 2, 21, 8, 30);
|
253
|
+
ContentResolver cr = getContentResolver();
|
254
|
+
ContentValues values = new ContentValues();
|
255
|
+
values.put(Events.CALENDAR_ID, 5);
|
256
|
+
values.put(Events.TITLE, "タイトル");
|
257
|
+
values.put(Events.DESCRIPTION, "説明");
|
258
|
+
values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());
|
259
|
+
values.put(Events.DTSTART, beginTime.getTimeInMillis());
|
260
|
+
values.put(Events.DTEND, endTime.getTimeInMillis());
|
261
|
+
|
262
|
+
|
263
|
+
if (checkSelfPermission(Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
|
264
|
+
checkPermission();
|
265
|
+
}
|
266
|
+
cr.insert(Events.CONTENT_URI, values);
|
267
|
+
}
|
242
268
|
```
|
3
全体のコードを載せました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -93,4 +93,150 @@
|
|
93
93
|
cr.insert(Events.CONTENT_URI, values);
|
94
94
|
}
|
95
95
|
}
|
96
|
+
```
|
97
|
+
|
98
|
+
以下から全文になります。
|
99
|
+
下記がMainActivity.javaです
|
100
|
+
```
|
101
|
+
package com.example.tera;
|
102
|
+
|
103
|
+
import androidx.annotation.NonNull;
|
104
|
+
import androidx.appcompat.app.AppCompatActivity;
|
105
|
+
|
106
|
+
import android.Manifest;
|
107
|
+
import android.content.ContentResolver;
|
108
|
+
import android.content.ContentValues;
|
109
|
+
import android.content.Intent;
|
110
|
+
import android.content.pm.PackageManager;
|
111
|
+
import android.net.Uri;
|
112
|
+
import android.os.Build;
|
113
|
+
import android.os.Bundle;
|
114
|
+
import android.provider.CalendarContract;
|
115
|
+
import android.widget.Toast;
|
116
|
+
|
117
|
+
import java.util.Calendar;
|
118
|
+
import java.util.TimeZone;
|
119
|
+
|
120
|
+
import android.provider.CalendarContract.Events;
|
121
|
+
|
122
|
+
public class MainActivity extends AppCompatActivity {
|
123
|
+
|
124
|
+
|
125
|
+
private final int REQUEST_PERMISSION = 10;
|
126
|
+
|
127
|
+
|
128
|
+
@Override
|
129
|
+
protected void onCreate(Bundle savedInstanceState) {
|
130
|
+
super.onCreate(savedInstanceState);
|
131
|
+
readContentActivity();
|
132
|
+
}
|
133
|
+
|
134
|
+
// Permissionの確認
|
135
|
+
public void checkPermission() {
|
136
|
+
// 既に許可している
|
137
|
+
if (checkSelfPermission(Manifest.permission.WRITE_CALENDAR) !=
|
138
|
+
PackageManager.PERMISSION_GRANTED) {
|
139
|
+
requestLocationPermission();
|
140
|
+
}
|
141
|
+
}
|
142
|
+
|
143
|
+
// 許可を求める
|
144
|
+
private void requestLocationPermission() {
|
145
|
+
if (shouldShowRequestPermissionRationale(
|
146
|
+
Manifest.permission.WRITE_CALENDAR)) {
|
147
|
+
requestPermissions(new String[]{Manifest.permission.WRITE_CALENDAR},
|
148
|
+
REQUEST_PERMISSION);
|
149
|
+
|
150
|
+
} else {
|
151
|
+
Toast toast = Toast.makeText(this,
|
152
|
+
"許可されないとアプリが実行できません", Toast.LENGTH_SHORT);
|
153
|
+
toast.show();
|
154
|
+
|
155
|
+
requestPermissions(new String[]{Manifest.permission.WRITE_CALENDAR,},
|
156
|
+
REQUEST_PERMISSION);
|
157
|
+
|
158
|
+
}
|
159
|
+
}
|
160
|
+
|
161
|
+
// 結果の受け取り
|
162
|
+
@Override
|
163
|
+
public void onRequestPermissionsResult(
|
164
|
+
int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
165
|
+
if (requestCode == REQUEST_PERMISSION) {
|
166
|
+
// 使用が許可された
|
167
|
+
if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
|
168
|
+
// それでも拒否された時の対応
|
169
|
+
Toast toast = Toast.makeText(this,
|
170
|
+
"これ以上なにもできません", Toast.LENGTH_SHORT);
|
171
|
+
toast.show();
|
172
|
+
}
|
173
|
+
}
|
174
|
+
}
|
175
|
+
|
176
|
+
public void readContentActivity() {
|
177
|
+
|
178
|
+
Calendar beginTime = Calendar.getInstance();
|
179
|
+
beginTime.set(2020, 2, 21, 7, 30);
|
180
|
+
Calendar endTime = Calendar.getInstance();
|
181
|
+
endTime.set(2020, 2, 21, 8, 30);
|
182
|
+
ContentResolver cr = getContentResolver();
|
183
|
+
ContentValues values = new ContentValues();
|
184
|
+
values.put(Events.CALENDAR_ID, 1);
|
185
|
+
values.put(Events.TITLE, "タイトル");
|
186
|
+
values.put(Events.DESCRIPTION, "説明");
|
187
|
+
values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());
|
188
|
+
values.put(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis());
|
189
|
+
values.put(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis());
|
190
|
+
|
191
|
+
|
192
|
+
if (checkSelfPermission(Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
|
193
|
+
checkPermission();
|
194
|
+
}
|
195
|
+
cr.insert(Events.CONTENT_URI, values);
|
196
|
+
}
|
197
|
+
}
|
198
|
+
|
199
|
+
```
|
200
|
+
|
201
|
+
下記がAndroidManifest.xmlです
|
202
|
+
```
|
203
|
+
<?xml version="1.0" encoding="utf-8"?>
|
204
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
205
|
+
package="com.example.tera">
|
206
|
+
|
207
|
+
|
208
|
+
<uses-permission android:name="android.permission.READ_CALENDAR" />
|
209
|
+
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
|
210
|
+
|
211
|
+
<application
|
212
|
+
android:allowBackup="true"
|
213
|
+
android:icon="@mipmap/ic_launcher"
|
214
|
+
android:label="@string/app_name"
|
215
|
+
android:roundIcon="@mipmap/ic_launcher_round"
|
216
|
+
android:supportsRtl="true"
|
217
|
+
android:theme="@style/AppTheme">
|
218
|
+
<activity android:name=".MainActivity">
|
219
|
+
<intent-filter>
|
220
|
+
<action android:name="android.intent.action.MAIN" />
|
221
|
+
|
222
|
+
<category android:name="android.intent.category.LAUNCHER" />
|
223
|
+
</intent-filter>
|
224
|
+
</activity>
|
225
|
+
</application>
|
226
|
+
|
227
|
+
</manifest>
|
228
|
+
```
|
229
|
+
|
230
|
+
下記がactivity_main.xmlです(一応のせときます)
|
231
|
+
```
|
232
|
+
<?xml version="1.0" encoding="utf-8"?>
|
233
|
+
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
234
|
+
xmlns:app="http://schemas.android.com/apk/res-auto"
|
235
|
+
xmlns:tools="http://schemas.android.com/tools"
|
236
|
+
android:layout_width="match_parent"
|
237
|
+
android:layout_height="match_parent"
|
238
|
+
tools:context=".MainActivity">
|
239
|
+
|
240
|
+
|
241
|
+
</androidx.constraintlayout.widget.ConstraintLayout>
|
96
242
|
```
|
2
```で囲みました。2つ目のコードの修正すべき点を教えてください。
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
アドバイスお願いします。
|
8
8
|
|
9
9
|
下記はパーミッションの確認のためのコードです。
|
10
|
-
|
10
|
+
```
|
11
11
|
public class MainActivity extends AppCompatActivity {
|
12
12
|
|
13
13
|
|
@@ -61,7 +61,7 @@
|
|
61
61
|
}
|
62
62
|
}
|
63
63
|
}
|
64
|
-
|
64
|
+
```
|
65
65
|
|
66
66
|
下記がパーミッションの確認のコードの呼び出し、
|
67
67
|
そしてカレンダーを保存するためのコードで、
|
@@ -70,7 +70,7 @@
|
|
70
70
|
なので下のコードを修正すべき箇所を
|
71
71
|
指摘してもらいたいです。
|
72
72
|
|
73
|
-
|
73
|
+
```
|
74
74
|
public void readContentActivity() {
|
75
75
|
|
76
76
|
Calendar beginTime = Calendar.getInstance();
|
@@ -93,4 +93,4 @@
|
|
93
93
|
cr.insert(Events.CONTENT_URI, values);
|
94
94
|
}
|
95
95
|
}
|
96
|
-
|
96
|
+
```
|
1
コードを’’’で囲みました。2つ目のコードの仕方が正しいかどうか教えてください。
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,6 +6,8 @@
|
|
6
6
|
2月21日7時30分に「タイトル」が保存されません。
|
7
7
|
アドバイスお願いします。
|
8
8
|
|
9
|
+
下記はパーミッションの確認のためのコードです。
|
10
|
+
'''
|
9
11
|
public class MainActivity extends AppCompatActivity {
|
10
12
|
|
11
13
|
|
@@ -59,7 +61,16 @@
|
|
59
61
|
}
|
60
62
|
}
|
61
63
|
}
|
64
|
+
'''
|
62
65
|
|
66
|
+
下記がパーミッションの確認のコードの呼び出し、
|
67
|
+
そしてカレンダーを保存するためのコードで、
|
68
|
+
下のコードを実行して、カレンダーアプリで
|
69
|
+
確認するのですが、保存されていません。
|
70
|
+
なので下のコードを修正すべき箇所を
|
71
|
+
指摘してもらいたいです。
|
72
|
+
|
73
|
+
'''
|
63
74
|
public void readContentActivity() {
|
64
75
|
|
65
76
|
Calendar beginTime = Calendar.getInstance();
|
@@ -81,6 +92,5 @@
|
|
81
92
|
}
|
82
93
|
cr.insert(Events.CONTENT_URI, values);
|
83
94
|
}
|
84
|
-
|
85
|
-
|
86
|
-
}
|
95
|
+
}
|
96
|
+
'''
|