㈠ 門禁卡寫入手機nfc 門禁卡寫入手機nfc的方法
如果您使用的是華為手機,您可以通過以下方法將實體門鑰匙添加到華為錢包,添加成功後相當於將實體門禁卡裝進了手機,刷手機即可開門。
提示:僅支持具備NFC功能機型。
添加的方法:
1、確保手機連接網路,並開啟NFC開關。(開啟方法:進入設置 > 更多連接 > NFC開啟NFC)
2、點擊華為錢包> 卡包 >鑰匙 > 門禁卡 > 模擬實體門禁卡。
3、將實體門禁卡貼在手機NFC感應部位,讀卡成功後自動模擬門禁卡。
4、模擬成功後編輯門禁卡樣式和名稱,點擊完成添加成功。
提示:退出華為帳號時,會提示是否保留錢包卡片在當前設備。若您選擇保留,重新登錄帳號後可正常使用; 選擇不保留,門禁卡將會從當前設備刪除。
㈡ 華為nfc怎麼用
nfc 主要有三種運行模式:卡模擬模式、讀寫模式和點對點模式,分別可以實現設備支付、門禁功能;讀身份證信息,給公交卡充值功能;實現設備間的數據傳輸功能。使用方法如下:
通過 nfc 功能支付:
1、運營商支持的 nfc-sim 卡支付。在手機上安裝支持 nfc-sim 功能的 sim 卡,在支持 nfc 的公交刷卡器、pos 機上都可以使用手機支付,詳情可咨詢商家和運營商。
2、hce (host-based card emulation)支付。在銀行卡應用程序中模擬一張實體銀行卡的替身卡,在非接觸式 pos 機的實體店都可以使用手機支付,快速、便捷又安全。
3、華為錢包支付。華為錢包將銀行卡/公交卡信息置於手機的安全晶元中,為您帶來安全和便利的支付體驗。
通過nfc給實物充值:
1、保證nfc功能處於開啟狀態:請進入「設置 > 更多 > nfc」,保證開關處於開啟狀態。
2、下載對應的應用,如微信,支付寶,翼支付等。
3、找到手機nfc的感應區。
4、將公交卡放置在手機背面nfc感應區。
5、在彈出的可識別應用中選擇對應的應用。如:北京公交卡請選擇微信,支付寶,e樂充等;武漢公交卡可以選擇武漢通行等。
通過nfc傳輸文件:
1、首先需要在nfc設置界面打開nfc開關,打開「huawei beam」開關(如有「讀寫/點對點」開關,也請一並開啟)。
2、在圖庫打開一張圖片,或者聯系人中打開單個聯系人詳情。然後將兩部手機的 nfc 天線感應區互相靠近。
3、當手機檢測到另外一台nfc手機靠近後,當前圖片或者聯系人界面會縮小,並顯示觸摸發送。此時點擊縮小的界面即可傳輸到另一台手機。
4、當傳輸開始後,即可將兩部靠近的手機分開。
㈢ Android手機中如何寫入NFC程序怎麼能讀到一張卡
Android讀寫NFC的步驟:x0dx0a1.首先要在AndroidManifest.xml中聲明如下配置信息:x0dx0a使用
㈣ Android手機中如何寫入NFC程序怎麼能讀到一張卡
Android讀寫NFC的步驟:
1.首先要在AndroidManifest.xml中聲明如下配置信息:
使用<uses-permission>元素允許設備訪問NFC硬體:
<uses-permission android:name="android.permission.NFC" />
2.使用<uses-sdk>元素設置最小SDK版本:
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />
3.NFC TAG的發布系統:
當android設備掃描到一個NFC標簽時,會自動尋找最適合的Activity來處理這個TAG,如果有多個Activity滿足條件的話,會讓用戶來選擇到底使用哪一個Activity來處理,可以理解為就是簡單的事件響應與事件處理。
4.如何讓一個Activity監聽 」當掃描到NFC標簽時」 的這一個事件呢?使用intent filter。
可以理解為當檢測到一個NFC標簽時,系統自動創建一個相關的Intent對象,含有響應intent filter的Activity將處理這個Intent。
其中,intent filter聲明如下:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" ></action>
<category android:name="android.intent.category.DEFAULT" ></category>
<data android:mimeType="text/plain" ></data>
</intent-filter>
5.讀取NFC標簽中NDEF格式的文本信息:
先判斷手機支不支持NFC功能,若支持,是否已設置開啟狀態。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_write);
nfcTView=(TextView)findViewById(R.id.info_tv);
nfcAdapter = NfcAdapter.getDefaultAdapter(this);
if (nfcAdapter == null) {
nfcTView.setText("設備不支持NFC!");
finish();
return;
}
if (nfcAdapter!=null&&!nfcAdapter.isEnabled()) {
nfcTView.setText("請在系統設置中先啟用NFC功能!");
finish();
return;
}
}
6.讀取NFC卡的內容
private boolean readFromTag(Intent intent){
Parcelable[] rawArray = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage mNdefMsg = (NdefMessage)rawArray[0];
NdefRecord mNdefRecord = mNdefMsg.getRecords()[0];
try {
if(mNdefRecord != null){
readResult = new String(mNdefRecord.getPayload(),"UTF-8");
return true;
}
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
};
return false;
}
㈤ 手機上的nfc怎麼用
很多用途,比如快速連接別的設備。例如,第一種我們要鏈接藍牙設備,一般的步驟是,打開藍牙,選擇設備。需要時間大概是5秒。而假設設備第一次連接,你還得配對,操作:1打開藍牙設備,然後點擊配對,2手機打開藍牙,搜索設備,點擊。而nfc可以做到,你解鎖屏幕後,靠近設備,聽見提示音,ok。1秒左右。無論第一次還是第二次都一樣。或者是傳輸文件app等,app最簡單,選擇app,然後碰一下。文件最多碰兩次,節省還需要打開藍牙的程序。打個比方就是你要分享一個文件之類的東西,你只需要打開這個文件,然後碰一下另外一台打開nfc bream的手機,然後提示你下一步之類的就完成了,省去你又要打開藍牙或者用流量分享。第二種快速的執行命令,比如說在會議室,我要求靜音的同時,連接wifi,打開某程序(比如說同步畫面到投影儀)。nfc只需要靠近標簽,解鎖,讀取。換成家庭,門口兩個nfc標簽,出門碰一下,關閉wifi,關閉藍牙,執行省電程序。進門碰另外一個,打開wifi,打開藍牙,關閉省電程序。第三種讀取信息,比如說我要給你我的電子名片,你手機靠近,讀取。完畢。用二維碼,你還得打開二維碼掃描軟體。當然,還有例如讀取銀行卡業務,方便。第四種,移動支付。這個不多說了。第五種,模擬卡,你想像下現在是不是有過這樣頭疼的情況,家裡有門禁,小區停車場有門禁,公司有門禁。最少的情況你都得有兩個:家裡和公司的門禁。如果模擬了,你就可以做到出門不帶那麼多的門禁卡。比如說我:我家裡一個門禁,辦事處一個,停車場一個,還有老家小區門禁一個,老家停車場門禁一個。一共五個門禁,有時候就只想下樓買包煙,結果發現忘記帶哪張卡,難受。當然,還有交通卡。你看,公交卡,停車卡,地鐵卡,都整合在一起,出門你就不用在一直掏錢包了。
㈥ 怎樣基於NFC做文本編輯器
1、進入設置—NFC—NFC場景標簽,選擇需要的場景標簽,開始進行編輯,編輯完成後,單獨把NFC標簽貼近手機背面,以寫入數據;
2、寫入成功後會有提示。成功後,退出到主界面。再次把NFC標簽靠近手機背面,即可進入之前編輯好的場景模式。
㈦ NFC標簽的內容寫入,需要搭配軟體嘛
NFC標簽貼紙的晶元都是可讀可寫的晶元,所謂可讀可寫就是你可以讀取裡面的內容,也可以重新向裡面寫入數據,我們的NFC手機,一般都支持向晶元寫入新內容,不過有些功能的實現需要搭配一些軟體,比較想要快速啟動一個程序,可以使用飛雲快啟,一般一個晶元的擦寫次數是10萬次,也就說,如果你更改數據超過10萬次,這個標簽一般情況下就會壞。
㈧ NFC開發(一)——HCE基於主機的卡模擬簡述
許多提供NFC功能的基於Android的設備已經支持NFC卡模擬。在大多數情況下,該卡由設備中的單獨晶元模擬,稱為 安全元件(Secure Element) 。無線運營商提供的許多SIM卡還包含安全元件(Secure Element)。
Android 4.4引入了另一種卡模擬方法,它不涉及SE,稱為 基於主機的卡模擬 。這允許任何Android應用程序模擬卡並直接與NFC讀卡器通話。本文檔描述了基於主機的卡模擬(HCE)如何在Android上工作,以及如何使用此技術開發模擬NFC卡的應用程序。
當使用安全元件(Secure Element)提供NFC卡模擬時,將通過Android應用程序將要模擬的卡提供到設備上的安全元件(Secure Element)中。然後,當用戶通過NFC終端握住設備時,設備中的NFC控制器將來自讀卡器(NFC Reader)的所有數據直接路由到安全元件(Secure Element)。圖1說明了這個概念。
安全元件(Secure Element)本身執行與NFC終端的通信,並且完全不涉及Android應用。交易完成後,Android應用程序可以直接查詢SE的交易狀態並通知用戶。
當使用基於主機的卡模擬來模擬NFC卡時,數據將被路由到直接運行Android應用程序的主機CPU,而不是將NFC協議幀路由到SE。圖2展示了基於主機的卡模擬如何工作。
NFC標准提供對許多不同協議的支持,並且可以模擬不同類型的卡。
Android 4.4支持當今市場上常見的幾種協議。許多現有的非接觸式卡已經基於這些協議,例如非接觸式支付卡。這些協議也得到了當今市場上眾多NFC讀卡器的支持,其中包括Android NFC設備可以自己作為讀卡器(請參見 IsoDep 課程)。這使您可以僅使用基於Android的設備在HCE周圍構建和部署端到端NFC解決方案。
具體而言,Android 4.4支持基於NFC-Forum ISO-DEP規范(基於ISO / IEC 14443-4)的模擬卡,並處理ISO / IEC 7816-4規范中定義的應用協議數據單元(APDU)。Android只強制在Nfc-A(ISO / IEC 14443-3 Type A)技術之上模擬ISO-DEP。支持Nfc-B(ISO / IEC 14443-4 Type B)技術是可選的。所有這些規格的分層如圖3所示。
Android中的HCE體系結構基於Android Service 組件(稱為「HCE服務」)。服務的一個關鍵優勢是它可以在沒有任何用戶界面的情況下在後台運行。這對於許多HCE應用程序來說非常合適,例如會員卡或公交卡,用戶不需要啟動應用程序即可使用它。相反,通過NFC讀卡器輕敲設備將啟動正確的服務(如果尚未運行)並在後台執行該事務。當然,如果有意義的話,您可以自由地從您的服務中啟動額外的UI(例如用戶通知)。
當用戶將設備連接到NFC讀取器時,Android系統需要知道NFC讀取器實際想要與哪個HCE服務通話。這就是ISO / IEC 7816-4規范的出處:它定義了一種選擇應用程序的方式,以應用程序ID(AID)為中心。一個AID最多由16個位元組組成。如果您正在模擬現有NFC讀卡器基礎架構的卡片,那麼這些讀卡器所尋找的AID通常是眾所周知的並且是公開注冊的(例如Visa和MasterCard等支付網路的AID)。
如果您想為自己的應用程序部署新的讀卡器基礎結構,則需要注冊您自己的AID。AID的注冊程序在ISO / IEC 7816-5規范中定義。如果您要為Android部署HCE應用程序,Google建議按照7816-5注冊AID,因為它可以避免與其他應用程序發生沖突。
在某些情況下,HCE服務可能需要注冊多個AID才能實現某個應用程序,並且需要確保它是所有這些AID的默認處理程序(而不是組中的某些AID轉到其他服務) 。
一個AID組是應該被OS視為一起歸屬的AID列表。對於AID組中的所有AID,Android會保證以下其中一項:
換句話說,沒有中間狀態,組中的一些AID可以路由到一個HCE服務,另一些AID可路由到另一個。
每個AID組都可以與一個類別關聯。這允許Android按類別將HCE服務組合在一起,並且反過來又允許用戶在類別的級別而不是AID級別設置默認值。通常,避免在應用程序的任何面向用戶的部分提及AID:它們對普通用戶沒有任何意義。
Android 4.4支持兩種類別: CATEGORY_PAYMENT (涵蓋行業標准支付應用程序)和 CATEGORY_OTHER (對於所有其他HCE應用程序)。
要使用基於主機的卡模擬來模擬NFC卡,您需要創建一個 Service 處理NFC事務的組件。
您的應用程序可以通過檢查 FEATURE_NFC_HOST_CARD_EMULATION 功能來檢查設備是否支持HCE 。您應該 <uses-feature> 在應用程序清單中使用該標記來聲明您的應用程序使用HCE功能,以及該應用程序是否需要運行。
Android 4.4帶有一個便利的 Service 類,可以作為實現HCE服務的基礎: HostApService 類。
因此,第一步要擴大 HostApService 。
HostApService 聲明了兩個需要重寫和實現的抽象方法。
processCommandAp() 只要NFC讀卡器將應用協議數據單元(APDU)發送到您的服務,就會調用它。APDU也在ISO / IEC 7816-4規范中定義。APDU是在NFC讀卡器和您的HCE服務之間交換的應用級數據包。該應用級協議是半雙工的:NFC讀卡器會向您發送命令APDU,並等待您發送響應APDU作為回報。
如前所述,Android使用AID來確定讀者想要與哪個HCE服務交談。通常,NFC讀卡器向您的設備發送的第一個APDU是「SELECT AID」APDU; 這個APDU包含讀卡器想與之交談的AID。Android從APDU中提取AID,將其解析為HCE服務,然後將該APDU轉發給已解析的服務。
您可以通過返回響應APDU的位元組來發送響應APDU [processCommandAp()]( https://developer.android.com/reference/android/nfc/cardemulation/HostApService.html#processCommandAp(byte[] , android.os.Bundle))。請注意,此方法將在應用程序的主線程中調用,該線程不應被阻止。所以如果你不能立即計算並返回一個響應APDU,那麼返回null。然後,您可以在另一個線程上完成必要的工作,並 sendResponseAp() 在完成後使用 HostApService 該類中定義的方法發送響應。
Android會繼續將新的APDU從讀取器轉發到您的服務,直到:
在這兩種情況下,你的類的 onDeactivated() 實現都是通過一個參數來調用的,這個參數指出了兩者中的哪一個發生了。
如果您正在使用現有的讀卡器基礎架構,則需要實現讀卡器在您的HCE服務中期望的現有應用程序級協議。
如果您正在部署您控制的新讀卡器基礎架構,則可以定義自己的協議和APDU序列。通常,嘗試限制APDU數量和需要交換的數據大小:這樣可以確保用戶只需將設備通過NFC讀取器持續一段時間即可。合理的上限約為1KB的數據,通常可以在 300ms 內交換。
您的服務必須像往常一樣在清單中聲明,但還必須在服務聲明中添加一些附加件。
首先,為了告訴平台它是一個實現 HostApService 介面的HCE服務 ,你的服務聲明必須包含一個 SERVICE_INTERFACE 動作的 Intent Filter 。
另外,為了告知平台哪個AIDs組被這個服務請求,一個 SERVICE_META_DATA <meta-data> 標簽必須包含在服務的聲明中,指向一個XML資源和關於HCE服務的附加信息。
最後,您必須將該 android:exported 屬性設置為true,並且 "android.permission.BIND_NFC_SERVICE" 在服務聲明中要求許可權。前者確保服務可以被外部應用程序綁定。後者然後強制只有擁有該 "android.permission.BIND_NFC_SERVICE" 許可權的外部應用程序 才能綁定到您的服務。既然 "android.permission.BIND_NFC_SERVICE" 是一個系統許可權,這有效地強制只有Android OS可以綁定到你的服務。
這是一個 HostApService 清單聲明的例子:
這個元數據標簽指向一個 apservice.xml 文件。下面顯示了具有包含兩個專有AID的單個AID組聲明的此類文件的示例:
該 <host-ap-service> 標簽需要包含一個 <android:description> 屬性,該屬性包含可能在UI中顯示的用戶友好的服務描述。該 requireDeviceUnlock 屬性可用於指定在調用此服務來處理APDU之前必須先解鎖設備。
在 <host-ap-service> 必須包含一個或多個 <aid-group> 標簽。每個 <aid-group> 標簽都需要:
最後,您的應用程序還需要擁有 NFC 可以注冊為HCE服務的 許可權。
多個 HostApService 組件可以安裝在單個設備上,並且可以由多個服務注冊相同的AID。Android平台根據AID屬於哪個類別來解決AID沖突。每個類別可能有不同的沖突解決策略。
例如,對於某些類別(如付款),用戶可能能夠在Android設置UI中選擇默認服務。對於其他類別,策略可能總是要求用戶在沖突情況下調用哪個服務。要查詢特定類別的沖突解決策略,請參閱 getSelectionModeForCategory() 。
應用程序可以使用[isDefaultServiceForCategory(ComponentName, String)]( https://developer.android.com/reference/android/nfc/cardemulation/CardEmulation.html#isDefaultServiceForCategory(android.content.ComponentName , java.lang.String))API 檢查其HCE服務是否是某個類別的默認服務。
如果您的服務不是默認設置,則可以請求將其設置為默認設置。看 ACTION_CHANGE_DEFAULT 。
Android會將AID組為「payment」的類別,聲明的HCE服務視為支付應用程序。Android 4.4版本包含一個名為「tap&pay」的top-level設置菜單條目,它列舉了所有這些支付應用程序。在此設置菜單中,用戶可以選擇在點按付款終端時將調用的默認支付應用程序。
為了提供更具視覺吸引力的用戶體驗,HCE支付應用程序需要為其服務提供額外的resource:所謂的服務標記。
這個asset的大小應該是260x96 dp,並且可以在元數據(meta-data)XML文件中通過添加指向drawable resource android:apServiceBanner 的 <host-ap-service> 標簽的屬性來指定 。一個例子如下所示:
當設備的屏幕關閉時,當前的Android實施將NFC控制器和應用程序處理器完全關閉。因此,當屏幕關閉時,HCE服務將無法工作。
然而,HCE服務可以從鎖定屏幕中起作用:這由HCE服務標記中的 android:requireDeviceUnlock 屬性控制 <host-ap-service> 。默認情況下,不需要設備解鎖,即使設備被鎖定,您的服務也會被調用。
如果您將 android:requireDeviceUnlock HCE服務的屬性設置為「true」,Android會提示用戶在您靠近NFC讀卡器時解鎖設備,NFC讀卡器會選擇已解析為您的服務的AID。解鎖後,Android會顯示一個對話框,提示用戶再次點擊以完成交易。這是必要的,因為用戶可能已經將設備從NFC讀卡器移開以便解鎖它。
本部分對於已經部署依賴SE進行卡模擬的應用程序的開發人員很感興趣。Android的HCE實現旨在與其他實現卡模擬的方法並行工作,包括使用SE。
這種共存基於一種稱為「AID路由」的原則:NFC控制器保留一個由(有限)路由規則列表組成的路由表。每個路由規則都包含一個AID和一個目的地。目標可以是主機CPU(Android應用程序正在運行的地方),也可以是連接的SE。
當NFC讀卡器發送具有「SELECT AID」的APDU時,NFC控制器解析它並檢查AID是否與其路由表中的任何AID匹配。如果匹配,那麼APDU和其後的所有APDU將被發送到與AID相關聯的目的地,直到收到另一個「SELECT AID」 APDU或NFC鏈路斷開。
圖4說明了這種架構。
NFC控制器通常還包含APDU的默認路由。在路由表中找不到AID時,將使用默認路由。盡管此設置可能因設備而異,但Android設備需要確保您的應用注冊的AID已正確路由到主機。
實現HCE服務或使用SE的Android應用程序不必擔心配置路由表 - 這是由Android自動處理的。Android只需要知道哪些AID可以由HCE服務處理,哪些可以由SE處理。基於哪些服務已安裝,以及哪些用戶已配置為首選服務,路由表會自動配置。
我們已經介紹了如何聲明HCE服務的AID。以下部分說明如何為使用SE進行卡模擬的應用程序聲明AID。
使用SE進行卡模擬的應用程序可以在其清單中聲明所謂的「關閉主機服務」。這種服務的聲明幾乎與宣布HCE服務相同。以下情況例外:
相應 apservice.xml 文件注冊兩個AID 的示例:
該 android:requireDeviceUnlock 屬性不適用於脫離主機服務,因為主機CPU不參與事務,因此無法阻止SE在設備鎖定時執行事務。
該 android:apServiceBanner 屬性必須用於作為支付應用程序的關閉主機服務,以便作為默認支付應用程序進行選擇。
Android本身永遠不會啟動或綁定到聲明為「脫離主機」的服務。這是因為實際交易由SE執行,而不是由Android服務本身執行。服務聲明僅允許應用程序注冊安全元件(Secure Element)上存在的AID。
HCE體系結構本身提供了一個核心安全性:因為您的服務受到 BIND_NFC_SERVICE 系統許可權的保護,所以只有操作系統可以綁定到您的服務並與之通信。這可以確保您收到的任何APDU實際上都是OS從NFC控制器接收到的APDU,並且您發回的任何APDU只會發送到操作系統,而操作系統會直接將APDU轉發給NFC控制器。
剩下的核心部分就是您獲取應用程序發送給NFC讀卡器的數據的位置。這在HCE設計中有意解耦:它不關心數據來自何處,它只是確保將其安全地傳送到NFC控制器並傳送到NFC讀取器。
為了安全地存儲和檢索您希望從HCE服務發送的數據,例如,您可以依靠Android應用程序沙箱,將應用程序的數據與其他應用程序隔離。有關Android安全性的更多詳細信息,請閱讀 安全提示 。
這部分內容對於希望了解HCE設備在NFC協議的防沖突和激活階段使用何種協議參數的開發人員很感興趣。這允許構建與Android HCE設備兼容的讀卡器基礎結構。
作為Nfc-A協議激活的一部分,交換多個幀。
在交換的第一部分,HCE設備將呈現其UID; HCE設備應該被假定為具有隨機的UID。這意味著在每個抽頭中,呈現給讀卡器的UID將是隨機生成的UID。因此,NFC讀卡器不應依賴HCE設備的UID作為身份驗證或身份驗證的一種形式。
NFC讀取器可以隨後通過發送SEL_REQ命令來選擇HCE設備。HCE設備的SEL_RES響應將至少設置第6位(0x20),表示設備支持ISO-DEP。注意,SEL_RES中的其他位也可以被設置,表示例如對NFC-DEP(p2p)協議的支持。由於可以設置其他位,所以想要與HCE設備交互的讀者應該明確檢查第6位,並且<stront style="box-sizing: inherit;">不要將完整的SEL_RES與值0x20進行比較。</stront>
Nfc-A協議激活後,NFC讀取器啟動ISO-DEP協議激活。它發送一個「RATS」(請求選擇應答)命令。RATS響應(ATS)完全由NFC控制器生成,不能由HCE服務配置。然而,HCE實現需要滿足NFC論壇對ATS響應的要求,因此NFC讀卡器可以根據NFC論壇對任何HCE設備的要求設置這些參數。
以下部分提供了有關NFC控制器在HCE設備上提供的ATS響應的各個位元組的更多詳細信息:
請注意,許多HCE設備可能符合EMVCo聯合的支付網路在其「非接觸式通信協議」規范中指定的協議要求。尤其是:
如前所述,HCE實現僅支持單個邏輯通道。嘗試在不同的邏輯通道上選擇應用程序將不適用於HCE設備。
本文 翻譯自 谷歌開發者文檔,已由本人仔細校對。如有錯誤,請聯系我,以便修改。
㈨ 專業問題:NFC標簽貼片,怎麼寫入打開手機中的某個應用
NFC可以通過近距離非接觸方式交換數據,而NFC貼片里所存儲的內容一般是一些簡單的指令,比如,在會議室門口放一個貼片,然後在裡面寫入關閉鈴聲的的設置指令,那進會議室只需掃一下貼片便可以讓手機進入會議模式
㈩ nfc貼紙怎麼寫入
用nfc寫入軟體寫入數據,如:TagWriter、NFC標簽助手、NFC Tools pro、Trigger、Mifare Class Tool、NFC百寶箱等等。