最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android詳細講解谷歌推出的官方二維碼掃描庫

 更新時間:2022年03月26日 11:40:54   作者:guolin  
Google推出的官方二維碼掃描庫你知道嗎?還不知道就落伍咯!本篇文字帶你了解google二維碼掃描庫的詳細情況與使用,還不知道的朋友快來看看吧

相信二維碼掃描現(xiàn)在大家都已經不稀奇了,幾乎所有的App里都會支持這個功能。

這里我要問大家一個問題,你們都是如何在自己的App中加入二維碼掃描功能的呢?

相信會有一大部分朋友說,使用的是ZXing或者ZBar這種開源庫。

但是不知道大家有沒有思考過,二維碼功能這么常見,為什么Google卻沒有提供一個官方的二維碼掃描庫呢?

反正我是沒思考過。有需求,找開源,這可能已經成了很多Android開發(fā)者的常態(tài)化思維。

但令我沒想到的是,官方的二維碼掃描庫,它真的要來了。

由于我是Google的GDE,有的時候可以提前體驗到一些Google還未正式對外開放,仍在開發(fā)當中的API。

就在不久之前,我收到了一封Google發(fā)來的郵件,內容如下:

當我看到郵件里提到了Google官方要推出一個二維碼、條形碼掃描庫時,我立刻被吸引到了,并且跟Google表達了我想嘗鮮的意愿。

幾經折騰之后,我終于將這個庫的一整套流程跑通了??傮w來說,體驗還不錯,有優(yōu)點也有缺點,下面我來逐條分析。

第一個優(yōu)點是,API非常簡單,傻瓜式接口,初學者都會用。比起ZXing和ZBar的學本成本要低很多。

其次,更加保護用戶隱私性。因為它的功能實現(xiàn)是基于Intent機制委托Android系統(tǒng)來調起手機攝像頭的,系統(tǒng)掃描出結果之后再將信息返回給我們,這樣我們就不用在自己的App當中去申請攝像頭權限了。

至于缺點的話,最大的問題就是,它依賴于Google Play Service,所以對于國內手機而言的話,基本就是完全無法使用的(不過下文也有其他解決方案)。而如果你們的產品是面向海外市場的話,這條就算不上什么缺點了。

另外我測試了一下,二維碼的識別效率不算很高,至少目前跟微信的識別效率是沒法比的。但是畢竟后期升級維護都是靠Google,服務有保障,相信以后識別效率會有顯著的提升。

優(yōu)缺點就介紹到這里吧,如果你對這個庫感興趣,也想跟我一樣嘗鮮的話,那么本篇文章接下來的內容就是教你如何集成并使用這個庫來進行二維碼掃描。

首先確保你的手機有安裝Google Play Service,并且版本在21.45.15以上,不然后面的代碼是跑不通的。

另外這個庫暫時還沒有上線,所以不能通過在線maven倉庫的方式集成到我們項目當中。而是要先將這個庫下載到本地,再通過本地maven倉庫的方式集成進來。

我們一步步操作。

這個庫的下載地址本來是在Google Drive上的,但是由于需要權限才能訪問下載,所以我將它上傳到了百度網(wǎng)盤上共享給大家。

鏈接:https://pan.baidu.com/s/1yhVQqQUZ9goLaT8P4OzTVA?pwd=1234
提取碼:1234

下載完成后,在你電腦的當前登錄用戶目錄下創(chuàng)建一個.m2/repository目錄,并將下載好的庫移到這個目錄當中解壓(注意解壓后的頂層目錄必須是com目錄)。

Linux或Mac用戶可以使用以下命令完成上述操作,Windows用戶請手動操作。

mkdir -p ~/.m2/repository
cd ~/.m2/repository
unzip <downloaded SDK zip file>

接下來在Android Studio中創(chuàng)建一個新的項目,并在項目根目錄的build.gradle文件中添加以下配置:

allprojects {
repositories {
google()
mavenCentral()
mavenLocal() // added
}
}

注意一定要加入mavenLocal()這行,這樣才可以加載到我們本地下載下來的二維碼掃描庫。

然后在app目錄下的build.gradle文件中添加如下依賴:

dependencies {
...
implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-eap1'
}

到這里為止,我們就成功將Google的這個二維碼掃描庫集成到我們項目當中了。

接下來介紹用法,用法就更加簡單了。因為它的本質是發(fā)起一個Intent來調起系統(tǒng)的相機程序,然后獲取掃描的結果值就可以了。不需要權限聲明,也不需要動態(tài)申請權限,調用一個API即可搞定。代碼如下所示:

class MainActivity : AppCompatActivity() {
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val button = findViewById<Button>(R.id.button)
        val textView = findViewById<TextView>(R.id.text_view)
        button.setOnClickListener {
            val scanner = GmsBarcodeScanning.getClient(applicationContext)
            scanner.startScan().addOnSuccessListener {
                val result = it.rawValue
                textView.text = result
            }
        }
    }
    
}

這里當我們點擊一個按鈕時,會調用GmsBarcodeScanning的getClient()方法來獲取一個GmsBarcodeScanner的實例。

然后調用startScan()即可開始掃描二維碼,調用addOnSuccessListener()方法注冊一個回調監(jiān)聽。當獲取到二維碼掃描結果的時候,我們將掃描出的結果顯示在TextView上面。

整體代碼非常簡單,另外再附上activity_main.xml的布局內容,同樣也非常簡單:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Scan Code" />

    <TextView
        android:id="@+id/text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

現(xiàn)在運行一下程序,效果如下圖所示:

可以看到,整個二維碼掃描界面都是由Google給我們提供的,掃描框也是典型的Google風格。我們只需要調用API,獲取掃描結果即可,接入成本非常非常低。

但是如此方便的二維碼掃描庫卻只能造福海外的開發(fā)者,國內由于沒有Google Play Service,我們無法直接享受到這個庫所帶來的便利性。

于是我也將這個問題提給了Google,對于中國的開發(fā)者,如果也想要用這個二維碼掃描庫怎么辦?

得到的答復是,Google是將ML Kit barcode scanner綁定成為了Google Play Service的一部分安裝到各個手機上的,如果我們的手機上沒有Google Play Service,那么就需要將ML Kit barcode scanner的完整版本集成到我們的項目當中才行。

完整版本的集成文檔我也討來了,鏈接如下:

https://developers.google.com/ml-kit/vision/barcode-scanning/android

上述文檔中還包含了如何從一張圖片、或者一個Bitmap對象中解析二維碼的功能,具體詳情請參考文檔即可,這里就不再展開講解了。

一篇技術嘗鮮小短文送給大家。

到此這篇關于Android詳細講解谷歌推出的官方二維碼掃描庫的文章就介紹到這了,更多相關Android 二維碼掃描庫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用RecyclerView實現(xiàn)Item點擊事件

    使用RecyclerView實現(xiàn)Item點擊事件

    這篇文章主要介紹了使用RecyclerView實現(xiàn)Item點擊事件,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Kotlin與Java相互調用的完整實例

    Kotlin與Java相互調用的完整實例

    Kotlin的設計過程中就考慮到了與Java的互操作性,在Kotlin中可以直接調用既有的Java代碼,反過來在Java中也可以很流暢地使用Kotlin代碼,這篇文章主要給大家介紹了關于Kotlin與Java相互調用的相關資料,需要的朋友可以參考下
    2021-12-12
  • Android重寫TextView實現(xiàn)文字整齊排版的方法(附demo源碼下載)

    Android重寫TextView實現(xiàn)文字整齊排版的方法(附demo源碼下載)

    這篇文章主要介紹了Android重寫TextView實現(xiàn)文字整齊排版的方法,結合實例形式分析了Android重寫TextView實現(xiàn)文字整齊排版的相關技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2016-02-02
  • Android使用MediaRecorder實現(xiàn)錄音及播放

    Android使用MediaRecorder實現(xiàn)錄音及播放

    這篇文章主要為大家詳細介紹了Android使用MediaRecorder實現(xiàn)錄音及播放,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Activity跳轉時生命周期跟蹤的實例

    Activity跳轉時生命周期跟蹤的實例

    下面小編就為大家?guī)硪黄狝ctivity跳轉時生命周期跟蹤的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Android搭建grpc環(huán)境過程分步詳解

    Android搭建grpc環(huán)境過程分步詳解

    本篇文章使用的IDE是Android Studio。這里先吐槽一句,安卓項目搭建grpc環(huán)境,不管是引入插件還是引入第三方庫,對于版本的要求都極為苛刻,一旦版本不匹配就會報錯,所以對于版本的搭配一定要注意
    2023-04-04
  • 完美解決EditText和ScrollView的滾動沖突(下)

    完美解決EditText和ScrollView的滾動沖突(下)

    這篇文章再次為大家詳細介紹了完美解決EditText和ScrollView滾動沖突的方法,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Android?Springboot?實現(xiàn)SSE通信案例詳解

    Android?Springboot?實現(xiàn)SSE通信案例詳解

    SSE是一種用于實現(xiàn)服務器主動向客戶端推送數(shù)據(jù)的技術,它基于?HTTP?協(xié)議,利用了其長連接特性,在客戶端與服務器之間建立一條持久化連接,并通過這條連接實現(xiàn)服務器向客戶端的實時數(shù)據(jù)推送,這篇文章主要介紹了Android?Springboot?實現(xiàn)SSE通信案例,需要的朋友可以參考下
    2024-07-07
  • ERROR/AndroidRuntime(17121)的問題解決

    ERROR/AndroidRuntime(17121)的問題解決

    ERROR/AndroidRuntime(17121)的問題解決,需要的朋友可以參考一下
    2013-05-05
  • Android帶氣泡的第三方Tab選項卡

    Android帶氣泡的第三方Tab選項卡

    這篇文章主要介紹了Android帶氣泡的第三方Tab選項卡的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02

最新評論

兴安盟| 南岸区| 满城县| 昭平县| 明光市| 莱州市| 延边| 开封县| 临澧县| 汕尾市| 镇平县| 威信县| 额济纳旗| 隆德县| 定安县| 隆德县| 微山县| 信宜市| 平和县| 犍为县| 旺苍县| 新营市| 正阳县| 奉新县| 博爱县| 察隅县| 凯里市| 县级市| 金塔县| 闸北区| 邯郸市| 城市| 沙雅县| 巫山县| 鹤岗市| 遂溪县| 木兰县| 广昌县| 黄大仙区| 长武县| 双牌县|