#java #android
#java #Android
Вопрос:
ACTION_USER_PRESENT
не зарегистрирован в моем приложении, что бы я ни пробовал, он никогда не регистрируется, то же самое относится и к ACTION_SCREEN_ON
нему. Вот какой-то код, который я написал, чтобы подсчитать количество разблокировок, но он не работает. Я скопировал его из другого поста StackOverflow, в котором объяснялось, как подсчитывать разблокировки.
public class FragmentStats extends Fragment {
private static final String TAG = "StatsFragment";
private TextView textView;
private SharedPreferences preferences;
private SharedPreferences.Editor editor;
private int count = 0;
public class PhoneUnlockedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
KeyguardManager keyguardManager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
if (keyguardManager.inKeyguardRestrictedInputMode()) {
count ;
editor = preferences.edit();
editor.putInt("tag", count).commit();
}
} else {
if (keyguardManager.isDeviceLocked()) {
count ;
editor = preferences.edit();
editor.putInt("tag", count).commit();
}
}
Log.d(TAG, "unlock registered");
}
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_stats, container, false);
textView = view.findViewById(R.id.numberOfUnlocksTxt);
getActivity().registerReceiver(new PhoneUnlockedReceiver(), new IntentFilter("android.intent.action.USER_PRESENT"));
preferences = getActivity().getSharedPreferences("label", 0);
count = preferences.getInt("tag", 0);
textView.setText("Total Number of Unlocks " count);
return view;
}
}