我跟着一些教程使用我的NFCTest的亞當搖桿源代碼。我希望能夠讀寫NFC標籤並啓動應用程序。如何閱讀和編寫Android NFC標籤?
回答
我認爲你找到的代碼是指2.3.3時代之前的代碼。在這一點上,它不能寫一個標籤,但對於Android 2.3.3,這是可能的。沒有必要試圖破解系統並寫入這樣的標籤。
看一看的NFC演示項目:http://developer.android.com/resources/samples/NFCDemo/index.html
的NDEF Tools for Android公用事業項目有助於執行以下操作
該項目還包含所有標準化NDEF記錄類型的數據綁定,與使用Android SDK中包含的(基於字節數組的)NDEF類相比,它真正簡化了一些事情。
另請參見NFC Eclipse plugin圖形NDEF編輯器 - 附帶實用程序app,它可以讀取和寫入標籤和光束,還具有NFC讀卡器集成功能。
順便說一句,你正在尋找Android應用程序記錄啓動應用程序。推出的'功能'不需要任何實際的實施;它內置於Android> = 4.0中,因此將該記錄放置在標籤上就足夠了。
編輯:更新鏈接
你可以找到一個簡單的NFC庫這裏一個例子: 所有的https://github.com/mateuyabar/pillowNFC
首先,你必須獲得針對NFC AndroidManifest.xml文件的權限。權限是:
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
在您的活動onCreate()方法你:
<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc" />
將執行NFC讀/寫操作的行爲,該活動在AndroidManifest.xml文件中添加此意圖過濾器必須初始化NFC適配器和定義待定意圖:
NfcAdapter mAdapter;
PendingIntent mPendingIntent;
mAdapter = NfcAdapter.getDefaultAdapter(this);
if (mAdapter == null) {
//nfc not support your device.
return;
}
mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
在的onResume()回撥使前景調度來檢測NFC意圖。
mAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
在的onPause()回調您必須禁用於地面調度:
if (mAdapter != null) {
mAdapter.disableForegroundDispatch(this);
}
在onNewIntent()回調方法,你會得到新的NFC意向。得到意向後,你必須解析檢測卡的意圖:
@Override
protected void onNewIntent(Intent intent){
getTagInfo(intent)
}
private void getTagInfo(Intent intent) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
}
現在你有標籤。然後,您可以檢查標籤技術列表以檢測該標籤。標籤檢測技術是在這裏My Another Answer 全面完整的項目是在這裏My github profile
卡里姆先生,我想創建自己的數字名片,請讓我知道我需要購買哪張nfc貼紙? – Sun 2015-03-10 11:40:29
您可以使用Mifare Classic 1k。它有巨大的內存(1024字節),每個塊可以一次寫入16個字節。您也可以鎖定數據以防止進一步寫入。 – 2015-03-10 15:35:59
首先是把這些在你的清單:
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.INTERNET" />
,然後把它放進你想讀NFC你的活動:
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
末增加前進喜歡我的活動:
/**版權所有(C)2010 Android開源項目項目 *版權所有(C)2011 AdamNybäck * *根據Apache許可證2.0版(「許可證」)獲得許可; *除遵守許可證外,您不得使用此文件。 *您可以在獲得許可證的副本 * * http://www.apache.org/licenses/LICENSE-2.0 * *除非適用法律要求或書面同意,根據許可證分發的軟件 *分佈在「原樣」的基礎, *沒有任何形式的保證或條件,無論是明示還是暗示。 *請參閱許可證以瞭解許可證下的特定語言管理權限和 *限制。 */
package ***.***.***.***;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.AnimationDrawable;
import android.nfc.NdefMessage;
import android.nfc.NdefRecord;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.nfc.tech.Ndef;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.balysv.materialripple.MaterialRippleLayout;
import com.blogspot.android_er.androidnfctagdiscovered.R;
import com.pixelcan.inkpageindicator.InkPageIndicator;
import hpbyp.ir.app.hojre.fragment.slider.SliderPagerAdapter;
import hpbyp.ir.app.hojre.utiles.G;
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper;
/**
* An {@link Activity} which handles a broadcast of a new tag that the device just discovered.
*/
public class ActivityLoadDataFromNFC extends AppCompatActivity {
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_load_data_from_nfc);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mAdapter = NfcAdapter.getDefaultAdapter(this);
if (mAdapter == null) {
//nfc not support your device.
return;
}
mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
}
NfcAdapter mAdapter;
PendingIntent mPendingIntent;
@Override
protected void onResume() {
super.onResume();
mAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
}
@Override
protected void onPause() {
super.onPause();
if (mAdapter != null) {
mAdapter.disableForegroundDispatch(this);
}
}
@Override
protected void onNewIntent(Intent intent) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
GetDataFromTag(tag, intent);
}
private void GetDataFromTag(Tag tag, Intent intent) {
Ndef ndef = Ndef.get(tag);
try {
ndef.connect();
// txtType.setText(ndef.getType().toString());
// txtSize.setText(String.valueOf(ndef.getMaxSize()));
// txtWrite.setText(ndef.isWritable() ? "True" : "False");
Parcelable[] messages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (messages != null) {
NdefMessage[] ndefMessages = new NdefMessage[messages.length];
for (int i = 0; i < messages.length; i++) {
ndefMessages[i] = (NdefMessage) messages[i];
}
NdefRecord record = ndefMessages[0].getRecords()[0];
byte[] payload = record.getPayload();
String text = new String(payload);
Log.e("tag", "vahid" + text);
ndef.close();
}
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Cannot Read From Tag.", Toast.LENGTH_LONG).show();
}
}
}
- 1. 閱讀寫作nfc標籤
- 2. 如何閱讀NFC標籤?
- 3. 閱讀空的NFC標籤
- 4. 只需閱讀NFC標籤
- 5. 閱讀NFCA MifareClassic NFC標籤
- 6. 如何閱讀Mifare classic Nfc標籤?
- 7. 閱讀NFC標籤和返回按鈕
- 8. 閱讀由其他應用程序編寫的nfc標籤
- 9. 在三星Galaxy SII上書寫,閱讀和分享標籤NFC
- 10. 如何閱讀NFC標籤並在Android中調用Webservice
- 11. 你如何閱讀Android上NFC標籤的唯一ID?
- 12. 如何閱讀nfc標籤與Android應用程序
- 13. 如何在Android中讀取NFC標籤?
- 14. 如何在Android中讀取Nfc標籤?
- 15. 識別tagTech和閱讀標籤使用android nfc
- 16. Android Java NFC:閱讀mimetype和標籤類型
- 17. Android NFC寫NFCA標籤
- 18. 如何閱讀NFC標籤的NDEF消息和記錄?
- 19. 閱讀索尼QX10 NFC標籤
- 20. NFC空標籤閱讀問題
- 21. Nfc-V標籤閱讀示例?
- 22. Step by Step ...閱讀NFC標籤
- 23. 閱讀物理NFC標籤 - Windows Phone 8
- 24. GoToTags - NFC標籤閱讀器ACR122U
- 25. 同時閱讀,寫作,然後再讀回NFC標籤可能在Android?
- 26. NFC閱讀器寫入器
- 27. 如何僅從我的Android應用程序編寫NFC標籤
- 28. Android:如何在Nexus S上編寫NFC-V(ISO15693)標籤?
- 29. 如何使用NFC Android閱讀MifareClassic卡?
- 30. 寫在一個只讀NFC標籤
檢查:https://stackoverflow.com/a/45773087/5733853 – HPbyP 2017-08-19 15:09:39