在android studio中如何创建一个类来继承另外一个类_在Android使用Transition API检测用户活动...
在當今世界,移動設備是我們日常生活中必不可少的一部分,我們在走路、跑步、開車以及其他許多活動時都會使用移動設備。
了解用戶拿著手機的時候在做什么,可以讓你的應用程序根據用戶的動作進行直觀的調整。對于某些應用程序,確定用戶何時開始或停止某個特定活動可能是必要的。例如,一個應用程序可以在用戶開始跑步的時候在后臺啟動音樂,或者計算燃燒的卡路里數。
在今天的文章中,我們將學習如何在Android中檢測和識別用戶活動,這樣,你的應用程序將在與用戶交互方面更加智能化,并能夠提供高度定制的體驗。
為此,我們將使用Activity Recognition Transition API。這個庫建立在可用的設備傳感器(陀螺儀、加速計等)上,以高精度檢測用戶活動的變化。此外,也許最重要的是,它消耗更少的電力。
本篇文章假定你已有使用Kotlin和AndroidX構建安卓應用程序的經驗.
項目設置
首先在Android Studio中創建一個新項目,或者打開一個現有的項目,在其中添加活動識別功能。
首先要配置的是依賴項。在應用程序的build.gradle文件添加如下行:
首先要配置的是依賴項。在應用程序的build.gradle文件添加如下行:
dependencies {//.... other dependenciesimplementation "com.google.android.gms:play-services-location:17.0.0"implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0' }接下來,在AndroidManifest.xml添加權限:
接下來,在AndroidManifest.xml添加權限:
<!-- Required for 28 and below --> <uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" /><!-- Required for 29+. --> <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />注意:在API 29及以上,您需要動態請求權限。
活動類型
Transition API使您能夠檢測到用戶的多種活動類型—下面是列表:
- IN_VEHICLE: 表示設備在車內
- ON_BICYCLE: 表示設備在自行車上
- RUNNING: 表示設備用戶在跑步
- ON_FOOT: 表示設備用戶正在走路或者跑步
- STILL: 表示設備沒有在移動
- WALKING: 表示設備用戶在走路
API還讓您知道特定的活動是即將開始還是即將結束。這由轉換類型表示:
- ACTIVITY_TRANSITION_ENTER: 用戶開始特定活動
- ACTIVITY_TRANSITION_EXIT: 用戶推出特定活動
在接下來的幾節中,我們需要知道我們要查找的類型和活動名稱。
建立一個API請求
為了告訴API要監控哪些活動,我們需要事先知道活動名稱和轉換類型。然后,我們創建一個ActivityTransition對象的列表,并從這個列表中創建activityTransitionRequest對象來構造請求。
下面我們來看看如何實現這一點:
val接收結果
在繼續之前,我們需要設置一個地方來接收API的更新。例如,一個更新可以是用戶進入IN_VEHICLE,即進入車內活動。
我們可以通過使用BroadcastReceiver類來實現這一點。我們通過擴展BroadcastReceiver類來創建所需的類,然后重寫onReceive()方法以從API接收更新。
在onReceive()方法中,我們在檢測到活動后執行所需的操作—可以向用戶發送通知,也可以啟動后臺服務—實際上由您來決定檢測到指定活動后如何做。
以下是我們的BroadcastReceiver的實現:
import我們使用兩個輔助函數activityType和transitionType將整數常量轉換為字符串。
連接組件
現在,我們有了一個接收器可以處理API發送的更新,我們可以告訴API從哪里發送。具體步驟如下:
首先,我們創建一個Intent,使用我們定義的變量RECEIVER_ACTION作為參數。
接著,我們從廣播接收器和上面的intent創建一個PendingIntent。
val在這之后,我們創建一個我們的接收器的實例,并把它注冊到LocalBroadcastManager中,使用我們指定的RECEIVER_ACTION作為IntentFilter。
receiver讓我進一步解釋一下這一步。我們知道,BroadcastReceiver可以接收和響應來自其他應用程序或系統的廣播消息。但是要做到這一點,首先需要注冊這個接收器,我們在上面的代碼中使用LocalBroadcastManager進行注冊。
當我們注冊一個廣播接收器時,我們還需要指定響應什么,換句話說,要監聽和響應什么事件。我們用自定義的行為RECEIVER_ACTION構建IntentFilter來實現這一點。
作為最后一步,我們請求ActivityRecognition API使用前面創建的PendingIntent和ActivityTransitionRequest進行更新。
val以下是前面步驟的完整代碼片段:
// creating the pending intent停止跟蹤
在某個時間點,如果您想取消并停止來自API的更新,可以在onStop()或onDestroy()方法,或者在您認為有必要停止跟蹤的任何位置執行此操作。
我們需要做兩件事來停止識別活動:
- 注銷接收器以停止接收傳入數據。
- 告訴API從我們的接收器中刪除更新。
下面的topActivityRecognition()-您可以定義并在必要時調用:
private結論
我們在本文中看到了如何檢測你的用戶的行為,并根據需要作出響應。您可以使用這個強大的API為用戶提供高度可定制和身臨其境的體驗。
原文鏈接
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的在android studio中如何创建一个类来继承另外一个类_在Android使用Transition API检测用户活动...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 个人如何进行黄金投资?黄金投资的主要方式
- 下一篇: 2020年个税专项附加扣除具体怎么操作?