偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Android終于要推出Google官方的二維碼掃描庫了?

移動開發(fā) Android
這里我要問大家一個問題,你們都是如何在自己的App中加入二維碼掃描功能的呢?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

我們一步步操作。

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

鏈接: https://pan.baidu.com/s/13nhR3ZXsa9ELBIX6giUCQg 提取碼: gfs8

下載完成后,在你電腦的當(dāng)前登錄用戶目錄下創(chuàng)建一個.m2/repository目錄,并將下載好的庫移到這個目錄當(dāng)中解壓(注意解壓后的頂層目錄必須是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的這個二維碼掃描庫集成到我們項目當(dāng)中了。

接下來介紹用法,用法就更加簡單了。因為它的本質(zhì)是發(fā)起一個Intent來調(diào)起系統(tǒng)的相機(jī)程序,然后獲取掃描的結(jié)果值就可以了。不需要權(quán)限聲明,也不需要動態(tài)申請權(quán)限,調(diào)用一個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
}
}
}

}

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

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

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

<?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風(fēng)格。我們只需要調(diào)用API,獲取掃描結(jié)果即可,接入成本非常非常低。

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

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

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

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

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

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

責(zé)任編輯:武曉燕 來源: 郭霖
相關(guān)推薦

2015-10-28 13:33:50

二維碼條形碼掃描源碼

2024-06-26 08:46:45

2014-12-31 15:37:16

二維碼生成掃描

2015-01-14 09:46:52

Google API

2013-01-30 12:16:49

二維碼NFC近場通訊

2013-03-27 16:13:17

Android開發(fā)Android二維碼生QR生成

2020-04-01 10:06:41

二維碼技術(shù)服務(wù)端

2023-11-17 09:07:51

.NET生成二維碼識別二維碼

2023-11-17 15:44:06

C++庫生成二維碼

2015-07-22 10:46:20

二維碼掃描

2011-12-06 16:40:45

二維碼快拍二維碼靈動快拍

2012-04-01 09:53:13

二維碼

2017-02-21 09:17:46

二維碼漏洞

2011-11-24 16:00:23

信息圖QR碼二維碼

2025-03-04 09:15:00

惡意軟件網(wǎng)絡(luò)安全郵件釣魚

2011-08-30 17:42:02

Kuapay二維碼移動支付

2020-10-08 18:48:02

二維碼安全應(yīng)用安全網(wǎng)絡(luò)攻擊

2013-10-29 09:46:05

二維碼

2023-12-25 14:53:36

2015-09-24 09:56:19

.NET二維碼
點贊
收藏

51CTO技術(shù)棧公眾號