日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

在android studio中如何创建一个类来继承另外一个类_在Android使用Transition API检测用户活动...

發(fā)布時(shí)間:2023/12/10 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在android studio中如何创建一个类来继承另外一个类_在Android使用Transition API检测用户活动... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在當(dāng)今世界,移動(dòng)設(shè)備是我們?nèi)粘I钪斜夭豢缮俚囊徊糠?#xff0c;我們?cè)谧呗贰⑴懿健㈤_(kāi)車以及其他許多活動(dòng)時(shí)都會(huì)使用移動(dòng)設(shè)備。

了解用戶拿著手機(jī)的時(shí)候在做什么,可以讓你的應(yīng)用程序根據(jù)用戶的動(dòng)作進(jìn)行直觀的調(diào)整。對(duì)于某些應(yīng)用程序,確定用戶何時(shí)開(kāi)始或停止某個(gè)特定活動(dòng)可能是必要的。例如,一個(gè)應(yīng)用程序可以在用戶開(kāi)始跑步的時(shí)候在后臺(tái)啟動(dòng)音樂(lè),或者計(jì)算燃燒的卡路里數(shù)。

在今天的文章中,我們將學(xué)習(xí)如何在Android中檢測(cè)和識(shí)別用戶活動(dòng),這樣,你的應(yīng)用程序?qū)⒃谂c用戶交互方面更加智能化,并能夠提供高度定制的體驗(yàn)。

為此,我們將使用Activity Recognition Transition API。這個(gè)庫(kù)建立在可用的設(shè)備傳感器(陀螺儀、加速計(jì)等)上,以高精度檢測(cè)用戶活動(dòng)的變化。此外,也許最重要的是,它消耗更少的電力。

本篇文章假定你已有使用Kotlin和AndroidX構(gòu)建安卓應(yīng)用程序的經(jīng)驗(yàn).

項(xiàng)目設(shè)置

首先在Android Studio中創(chuàng)建一個(gè)新項(xiàng)目,或者打開(kāi)一個(gè)現(xiàn)有的項(xiàng)目,在其中添加活動(dòng)識(shí)別功能。

首先要配置的是依賴項(xiàng)。在應(yīng)用程序的build.gradle文件添加如下行:

首先要配置的是依賴項(xiàng)。在應(yīng)用程序的build.gradle文件添加如下行:

dependencies {//.... other dependenciesimplementation "com.google.android.gms:play-services-location:17.0.0"implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0' }

接下來(lái),在AndroidManifest.xml添加權(quán)限:

接下來(lái),在AndroidManifest.xml添加權(quán)限:

<!-- 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及以上,您需要?jiǎng)討B(tài)請(qǐng)求權(quán)限。

活動(dòng)類型

Transition API使您能夠檢測(cè)到用戶的多種活動(dòng)類型—下面是列表:

  • IN_VEHICLE: 表示設(shè)備在車內(nèi)
  • ON_BICYCLE: 表示設(shè)備在自行車上
  • RUNNING: 表示設(shè)備用戶在跑步
  • ON_FOOT: 表示設(shè)備用戶正在走路或者跑步
  • STILL: 表示設(shè)備沒(méi)有在移動(dòng)
  • WALKING: 表示設(shè)備用戶在走路

API還讓您知道特定的活動(dòng)是即將開(kāi)始還是即將結(jié)束。這由轉(zhuǎn)換類型表示:

  • ACTIVITY_TRANSITION_ENTER: 用戶開(kāi)始特定活動(dòng)
  • ACTIVITY_TRANSITION_EXIT: 用戶推出特定活動(dòng)

在接下來(lái)的幾節(jié)中,我們需要知道我們要查找的類型和活動(dòng)名稱。

建立一個(gè)API請(qǐng)求

為了告訴API要監(jiān)控哪些活動(dòng),我們需要事先知道活動(dòng)名稱和轉(zhuǎn)換類型。然后,我們創(chuàng)建一個(gè)ActivityTransition對(duì)象的列表,并從這個(gè)列表中創(chuàng)建activityTransitionRequest對(duì)象來(lái)構(gòu)造請(qǐng)求。

下面我們來(lái)看看如何實(shí)現(xiàn)這一點(diǎn):

val

接收結(jié)果

在繼續(xù)之前,我們需要設(shè)置一個(gè)地方來(lái)接收API的更新。例如,一個(gè)更新可以是用戶進(jìn)入IN_VEHICLE,即進(jìn)入車內(nèi)活動(dòng)。

我們可以通過(guò)使用BroadcastReceiver類來(lái)實(shí)現(xiàn)這一點(diǎn)。我們通過(guò)擴(kuò)展BroadcastReceiver類來(lái)創(chuàng)建所需的類,然后重寫(xiě)onReceive()方法以從API接收更新。

在onReceive()方法中,我們?cè)跈z測(cè)到活動(dòng)后執(zhí)行所需的操作—可以向用戶發(fā)送通知,也可以啟動(dòng)后臺(tái)服務(wù)—實(shí)際上由您來(lái)決定檢測(cè)到指定活動(dòng)后如何做。

以下是我們的BroadcastReceiver的實(shí)現(xiàn):

import

我們使用兩個(gè)輔助函數(shù)activityType和transitionType將整數(shù)常量轉(zhuǎn)換為字符串。

連接組件

現(xiàn)在,我們有了一個(gè)接收器可以處理API發(fā)送的更新,我們可以告訴API從哪里發(fā)送。具體步驟如下:

首先,我們創(chuàng)建一個(gè)Intent,使用我們定義的變量RECEIVER_ACTION作為參數(shù)。

接著,我們從廣播接收器和上面的intent創(chuàng)建一個(gè)PendingIntent。

val

在這之后,我們創(chuàng)建一個(gè)我們的接收器的實(shí)例,并把它注冊(cè)到LocalBroadcastManager中,使用我們指定的RECEIVER_ACTION作為IntentFilter。

receiver

讓我進(jìn)一步解釋一下這一步。我們知道,BroadcastReceiver可以接收和響應(yīng)來(lái)自其他應(yīng)用程序或系統(tǒng)的廣播消息。但是要做到這一點(diǎn),首先需要注冊(cè)這個(gè)接收器,我們?cè)谏厦娴拇a中使用LocalBroadcastManager進(jìn)行注冊(cè)。

當(dāng)我們注冊(cè)一個(gè)廣播接收器時(shí),我們還需要指定響應(yīng)什么,換句話說(shuō),要監(jiān)聽(tīng)和響應(yīng)什么事件。我們用自定義的行為RECEIVER_ACTION構(gòu)建IntentFilter來(lái)實(shí)現(xiàn)這一點(diǎn)。

作為最后一步,我們請(qǐng)求ActivityRecognition API使用前面創(chuàng)建的PendingIntent和ActivityTransitionRequest進(jìn)行更新。

val

以下是前面步驟的完整代碼片段:

// creating the pending intent

停止跟蹤

在某個(gè)時(shí)間點(diǎn),如果您想取消并停止來(lái)自API的更新,可以在onStop()或onDestroy()方法,或者在您認(rèn)為有必要停止跟蹤的任何位置執(zhí)行此操作。

我們需要做兩件事來(lái)停止識(shí)別活動(dòng):

  • 注銷接收器以停止接收傳入數(shù)據(jù)。
  • 告訴API從我們的接收器中刪除更新。

下面的topActivityRecognition()-您可以定義并在必要時(shí)調(diào)用:

private

結(jié)論

我們?cè)诒疚闹锌吹搅巳绾螜z測(cè)你的用戶的行為,并根據(jù)需要作出響應(yīng)。您可以使用這個(gè)強(qiáng)大的API為用戶提供高度可定制和身臨其境的體驗(yàn)。

原文鏈接

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的在android studio中如何创建一个类来继承另外一个类_在Android使用Transition API检测用户活动...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。