質問編集履歴

4

readContentActivityを修正したコードを追記しました。

2020/03/05 10:11

投稿

jafirm
jafirm

スコア6

test CHANGED
File without changes
test CHANGED
@@ -481,3 +481,55 @@
481
481
  </androidx.constraintlayout.widget.ConstraintLayout>
482
482
 
483
483
  ```
484
+
485
+
486
+
487
+ 以下が完成したうまくいったコードで上記のreadContentActivityを修正しました。
488
+
489
+ ```
490
+
491
+
492
+
493
+ public void readContentActivity() {
494
+
495
+
496
+
497
+ Calendar beginTime = Calendar.getInstance();
498
+
499
+ beginTime.set(2020, 2, 21, 7, 30);
500
+
501
+ Calendar endTime = Calendar.getInstance();
502
+
503
+ endTime.set(2020, 2, 21, 8, 30);
504
+
505
+ ContentResolver cr = getContentResolver();
506
+
507
+ ContentValues values = new ContentValues();
508
+
509
+ values.put(Events.CALENDAR_ID, 5);
510
+
511
+ values.put(Events.TITLE, "タイトル");
512
+
513
+ values.put(Events.DESCRIPTION, "説明");
514
+
515
+ values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());
516
+
517
+ values.put(Events.DTSTART, beginTime.getTimeInMillis());
518
+
519
+ values.put(Events.DTEND, endTime.getTimeInMillis());
520
+
521
+
522
+
523
+
524
+
525
+ if (checkSelfPermission(Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
526
+
527
+ checkPermission();
528
+
529
+ }
530
+
531
+ cr.insert(Events.CONTENT_URI, values);
532
+
533
+ }
534
+
535
+ ```

3

全体のコードを載せました。

2020/03/05 10:11

投稿

jafirm
jafirm

スコア6

test CHANGED
File without changes
test CHANGED
@@ -189,3 +189,295 @@
189
189
  }
190
190
 
191
191
  ```
192
+
193
+
194
+
195
+ 以下から全文になります。
196
+
197
+ 下記がMainActivity.javaです
198
+
199
+ ```
200
+
201
+ package com.example.tera;
202
+
203
+
204
+
205
+ import androidx.annotation.NonNull;
206
+
207
+ import androidx.appcompat.app.AppCompatActivity;
208
+
209
+
210
+
211
+ import android.Manifest;
212
+
213
+ import android.content.ContentResolver;
214
+
215
+ import android.content.ContentValues;
216
+
217
+ import android.content.Intent;
218
+
219
+ import android.content.pm.PackageManager;
220
+
221
+ import android.net.Uri;
222
+
223
+ import android.os.Build;
224
+
225
+ import android.os.Bundle;
226
+
227
+ import android.provider.CalendarContract;
228
+
229
+ import android.widget.Toast;
230
+
231
+
232
+
233
+ import java.util.Calendar;
234
+
235
+ import java.util.TimeZone;
236
+
237
+
238
+
239
+ import android.provider.CalendarContract.Events;
240
+
241
+
242
+
243
+ public class MainActivity extends AppCompatActivity {
244
+
245
+
246
+
247
+
248
+
249
+ private final int REQUEST_PERMISSION = 10;
250
+
251
+
252
+
253
+
254
+
255
+ @Override
256
+
257
+ protected void onCreate(Bundle savedInstanceState) {
258
+
259
+ super.onCreate(savedInstanceState);
260
+
261
+ readContentActivity();
262
+
263
+ }
264
+
265
+
266
+
267
+ // Permissionの確認
268
+
269
+ public void checkPermission() {
270
+
271
+ // 既に許可している
272
+
273
+ if (checkSelfPermission(Manifest.permission.WRITE_CALENDAR) !=
274
+
275
+ PackageManager.PERMISSION_GRANTED) {
276
+
277
+ requestLocationPermission();
278
+
279
+ }
280
+
281
+ }
282
+
283
+
284
+
285
+ // 許可を求める
286
+
287
+ private void requestLocationPermission() {
288
+
289
+ if (shouldShowRequestPermissionRationale(
290
+
291
+ Manifest.permission.WRITE_CALENDAR)) {
292
+
293
+ requestPermissions(new String[]{Manifest.permission.WRITE_CALENDAR},
294
+
295
+ REQUEST_PERMISSION);
296
+
297
+
298
+
299
+ } else {
300
+
301
+ Toast toast = Toast.makeText(this,
302
+
303
+ "許可されないとアプリが実行できません", Toast.LENGTH_SHORT);
304
+
305
+ toast.show();
306
+
307
+
308
+
309
+ requestPermissions(new String[]{Manifest.permission.WRITE_CALENDAR,},
310
+
311
+ REQUEST_PERMISSION);
312
+
313
+
314
+
315
+ }
316
+
317
+ }
318
+
319
+
320
+
321
+ // 結果の受け取り
322
+
323
+ @Override
324
+
325
+ public void onRequestPermissionsResult(
326
+
327
+ int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
328
+
329
+ if (requestCode == REQUEST_PERMISSION) {
330
+
331
+ // 使用が許可された
332
+
333
+ if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
334
+
335
+ // それでも拒否された時の対応
336
+
337
+ Toast toast = Toast.makeText(this,
338
+
339
+ "これ以上なにもできません", Toast.LENGTH_SHORT);
340
+
341
+ toast.show();
342
+
343
+ }
344
+
345
+ }
346
+
347
+ }
348
+
349
+
350
+
351
+ public void readContentActivity() {
352
+
353
+
354
+
355
+ Calendar beginTime = Calendar.getInstance();
356
+
357
+ beginTime.set(2020, 2, 21, 7, 30);
358
+
359
+ Calendar endTime = Calendar.getInstance();
360
+
361
+ endTime.set(2020, 2, 21, 8, 30);
362
+
363
+ ContentResolver cr = getContentResolver();
364
+
365
+ ContentValues values = new ContentValues();
366
+
367
+ values.put(Events.CALENDAR_ID, 1);
368
+
369
+ values.put(Events.TITLE, "タイトル");
370
+
371
+ values.put(Events.DESCRIPTION, "説明");
372
+
373
+ values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());
374
+
375
+ values.put(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis());
376
+
377
+ values.put(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis());
378
+
379
+
380
+
381
+
382
+
383
+ if (checkSelfPermission(Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
384
+
385
+ checkPermission();
386
+
387
+ }
388
+
389
+ cr.insert(Events.CONTENT_URI, values);
390
+
391
+ }
392
+
393
+ }
394
+
395
+
396
+
397
+ ```
398
+
399
+
400
+
401
+ 下記がAndroidManifest.xmlです
402
+
403
+ ```
404
+
405
+ <?xml version="1.0" encoding="utf-8"?>
406
+
407
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
408
+
409
+ package="com.example.tera">
410
+
411
+
412
+
413
+
414
+
415
+ <uses-permission android:name="android.permission.READ_CALENDAR" />
416
+
417
+ <uses-permission android:name="android.permission.WRITE_CALENDAR" />
418
+
419
+
420
+
421
+ <application
422
+
423
+ android:allowBackup="true"
424
+
425
+ android:icon="@mipmap/ic_launcher"
426
+
427
+ android:label="@string/app_name"
428
+
429
+ android:roundIcon="@mipmap/ic_launcher_round"
430
+
431
+ android:supportsRtl="true"
432
+
433
+ android:theme="@style/AppTheme">
434
+
435
+ <activity android:name=".MainActivity">
436
+
437
+ <intent-filter>
438
+
439
+ <action android:name="android.intent.action.MAIN" />
440
+
441
+
442
+
443
+ <category android:name="android.intent.category.LAUNCHER" />
444
+
445
+ </intent-filter>
446
+
447
+ </activity>
448
+
449
+ </application>
450
+
451
+
452
+
453
+ </manifest>
454
+
455
+ ```
456
+
457
+
458
+
459
+ 下記がactivity_main.xmlです(一応のせときます)
460
+
461
+ ```
462
+
463
+ <?xml version="1.0" encoding="utf-8"?>
464
+
465
+ <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
466
+
467
+ xmlns:app="http://schemas.android.com/apk/res-auto"
468
+
469
+ xmlns:tools="http://schemas.android.com/tools"
470
+
471
+ android:layout_width="match_parent"
472
+
473
+ android:layout_height="match_parent"
474
+
475
+ tools:context=".MainActivity">
476
+
477
+
478
+
479
+
480
+
481
+ </androidx.constraintlayout.widget.ConstraintLayout>
482
+
483
+ ```

2

```で囲みました。2つ目のコードの修正すべき点を教えてください。

2020/03/02 12:11

投稿

jafirm
jafirm

スコア6

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  下記はパーミッションの確認のためのコードです。
18
18
 
19
- '''
19
+ ```
20
20
 
21
21
  public class MainActivity extends AppCompatActivity {
22
22
 
@@ -124,7 +124,7 @@
124
124
 
125
125
  }
126
126
 
127
- '''
127
+ ```
128
128
 
129
129
 
130
130
 
@@ -142,7 +142,7 @@
142
142
 
143
143
 
144
144
 
145
- '''
145
+ ```
146
146
 
147
147
  public void readContentActivity() {
148
148
 
@@ -188,4 +188,4 @@
188
188
 
189
189
  }
190
190
 
191
- '''
191
+ ```

1

コードを’’’で囲みました。2つ目のコードの仕方が正しいかどうか教えてください。

2020/03/02 10:41

投稿

jafirm
jafirm

スコア6

test CHANGED
File without changes
test CHANGED
@@ -13,6 +13,10 @@
13
13
  アドバイスお願いします。
14
14
 
15
15
 
16
+
17
+ 下記はパーミッションの確認のためのコードです。
18
+
19
+ '''
16
20
 
17
21
  public class MainActivity extends AppCompatActivity {
18
22
 
@@ -120,7 +124,25 @@
120
124
 
121
125
  }
122
126
 
127
+ '''
123
128
 
129
+
130
+
131
+ 下記がパーミッションの確認のコードの呼び出し、
132
+
133
+ そしてカレンダーを保存するためのコードで、
134
+
135
+ 下のコードを実行して、カレンダーアプリで
136
+
137
+ 確認するのですが、保存されていません。
138
+
139
+ なので下のコードを修正すべき箇所を
140
+
141
+ 指摘してもらいたいです。
142
+
143
+
144
+
145
+ '''
124
146
 
125
147
  public void readContentActivity() {
126
148
 
@@ -164,8 +186,6 @@
164
186
 
165
187
  }
166
188
 
189
+ }
167
190
 
168
-
169
-
170
-
171
- }
191
+ '''