androidmime
1. 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;
}
2. android 怎樣獲取mimetype
可以使用如下方法獲取文件的mimetype類型:、
public class MainActivity extends Activity {
private String tag = "MainActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println(111);
MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
//MimeTypeMap中是否有txt的MimeType
System.out.println(mimeTypeMap.hasExtension("txt"));
System.out.println(mimeTypeMap.hasMimeType("text/html"));
//獲得txt文件類型的MimeType
String extension = mimeTypeMap.getMimeTypeFromExtension("txt");
System.out.println(extension);
}
}
-----------------