■ はじめに
目覚まし機能(アラーム機能)について、まとめる
目次
【1】アラーム実装の手順 【2】Hello World 【3】アラーム種類
【1】アラーム実装の手順
1)アラーム通知を受け取るためのクラスを作成 ⇒ 以下「【2】Hello World」の「AlarmBroadcastReceiver.kt」を参照 2)マニフェストファイルに1)を追加 ⇒ 以下「【2】Hello World」の「app/manifests/AndroidManifest.xml」を参照 3)AlarmManageを使ってアラームを設定する ⇒ 以下「【2】Hello World」の「MainActivity.kt」を参照
【2】Hello World
app/manifests/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> ... <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> ... <!-- ★ここ★ --> <receiver android:name=".alarm.AlarmBroadcastReceiver"></receiver> </application> </manifest>
AlarmBroadcastReceiver.kt
import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.widget.Toast // アラーム通知を受け取るための BroadcastReceiver 継承したクラスを作成 class AlarmBroadcastReceiver : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { Toast.makeText( context, "時間です", Toast.LENGTH_SHORT).show() } }
MainActivity.kt
import android.app.AlarmManager import android.app.PendingIntent import android.content.Intent import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.annotation.RequiresApi import com.dk.jpalarm.alarm.AlarmBroadcastReceiver import java.util.* class MainActivity : BaseActivity() { @RequiresApi(Build.VERSION_CODES.KITKAT) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var calendar = Calendar.getInstance() calendar.timeInMillis = System.currentTimeMillis() calendar.add(Calendar.SECOND,5) val intent = Intent( this, AlarmBroadcastReceiver::class.java) val pending = PendingIntent.getBroadcast( this,0,intent,0) var alarmManager : AlarmManager = getSystemService(ALARM_SERVICE) as AlarmManager alarmManager.setExact( AlarmManager.RTC_WAKEUP, calendar.timeInMillis, pending) } }
参考文献
関連記事
アラーム機能 ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/08/06/000000
Androidアプリから端末のアラームを設定する
https://dk521123.hatenablog.com/entry/2018/05/06/234117
Kotlin / Realm で英単語帳を作る
https://dk521123.hatenablog.com/entry/2020/07/20/232009
ダイアログ表示 ~ 基本編 / アラートダイアログ ~
https://dk521123.hatenablog.com/entry/2013/10/05/214058
ダイアログ表示 ~ 基本編 / 日付・時間ダイアログ ~
https://dk521123.hatenablog.com/entry/2020/07/26/000000
音声を再生するには
https://dk521123.hatenablog.com/entry/2020/07/18/000000
Kotlin ~ 基本編 / Enum・列挙型関連 ~
https://dk521123.hatenablog.com/entry/2020/08/10/125112