java为什么没有接收到操作用户?
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("安卓.intent.action.USER_PRESENT"));
preferences = getActivity().getSharedPreferences("label", 0);
count = preferences.getInt("tag", 0);
textView.setText("Total Number of Unlocks " + count);
return view;
}
}
共 (0) 个答案