###前提・実現したいこと
1日のうちに一定時間スマホを利用するとスマホの操作を受け付けないようにするアプリを開発中です。
ロック条件は違いますが理想としてはGooglePlayにあるスマホ依存タイマーだったりDetoxスマホのようにロック出来たらよいと考えています。
アプリ内のみのHOMEボタンの無効化とほかの画面に遷移させないようにするための良い方法は何かないでしょうか。
###発生している問題・エラーメッセージ
現在2つのアプリを開発し一つはスマホの電源がついている間のみカウントダウンが進み0になるともう一つのアプリを起動するというもので、
もう一つはランチャーアプリで疑似的ながらHOMEボタンを無効化し戻るボタンも無効にすることでスマホをロックするというものです。
ですがこの方法だど解除方法がユーザが設定から行わないといけないし通知などから他の画面に飛ばれてしまうため完全なロックとは程遠い状況です。
エラーメッセージはありません。
###該当のソースコード
package com.example.cs1.mymukou3; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.provider.Settings; import android.support.v7.app.AppCompatActivity; import android.view.KeyEvent; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG; import android.app.Activity; import android.app.KeyguardManager; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.KeyEvent; import android.view.WindowManager; import android.widget.Toast; import org.w3c.dom.Text; import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG; import static com.example.cs1.mymukou3.R.layout.activity_schedule_edit; import static java.util.logging.Logger.global; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ public int global; public SharedPreferences dataStore; public TextView textRead; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.button).setOnClickListener(this); //リスナーをボタンに登録 } protected void onCreate() { // super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button).setOnClickListener(this); //リスナーをボタンに登録 } //戻る無効処理 public boolean dispatchKeyEvent(KeyEvent event) { // TODO Auto-generated method stub if (event.getAction() == KeyEvent.ACTION_DOWN) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {// BACKキー return true; } } return super.dispatchKeyEvent(event); } //設定とぶボタン public void onClickButton(View view){ Intent intent = new Intent("android.settings.SETTINGS"); intent.setAction(android.provider.Settings.ACTION_SETTINGS); startActivity(intent); } }
###試したこと
上記記載
###補足情報(言語/FW/ツール等のバージョンなど)
開発環境Android studio
開発者初心者のためソースコードやコメントなどを丁寧に説明してくれると助かります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。