Xamarin iOS / Android:检测锁屏/主屏幕点击检测或滑动检测

时间:2016-10-20 15:29:53

标签: android ios objective-c xamarin xamarin.forms

我正在使用xamarin表单开发移动应用程序,是否可以在android中检测滑动手势以获取屏幕截图或点击锁定屏幕或主屏幕?

如果可以通过目标C / swift / java,那么也可以通过Xamarin。

1 个答案:

答案 0 :(得分:1)

<强>的Android

我不相信您可以在锁定屏幕期间设置滑动手势/点击,因为它是不同进程(系统应用程序)中的单独活动。您也无法使用用户应用程序替换锁定屏幕。

您可以通过ACTION_USER_PRESENT API控制其中的一部分:

https://docs.efproject.net/en/latest/platforms/aspnetcore/existing-db.html#reverse-engineer-your-model

然而,这只是与你想要的相反(可能知道用户是否完成了锁屏)。

您可以通过ACTION_USER_UNLOCKED收听Broadcast Receiver或相当新的Darwin广播:

https://developer.android.com/guide/topics/admin/device-admin.html#lock(API 3)

https://developer.android.com/reference/android/content/Intent.html#ACTION_USER_PRESENT(API 24)

https://developer.android.com/reference/android/content/Intent.html#ACTION_USER_UNLOCKED

<强>的iOS

您可以使用com.apple.springboard.hasBlankedScreen通知 - https://developer.android.com/training/articles/direct-boot.html#notification

您可以查看以下事件:

  • com.apple.springboard.lockstate - 当屏幕变为空白时(将会有几次)
  • com.apple.springboard.lockcomplete - 锁定处于什么状态(锁定/解锁)
  • try ( ServerSocket serverSocket = new ServerSocket(portNumber); Socket clientSocket = serverSocket.accept(); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); ) { while (dataProvider.isDataAvailable()) { out.println(dataProvider.getData()); } } catch (IOException e) { // TODO } - 设备已锁定

https://developer.apple.com/reference/corefoundation/1666719-cfnotificationcenter

Is there a away to detect the event when iOS device goes to sleep mode (when the screen gets blackened)?