精华内容
下载资源
问答
  • *它还可以用作Mifare Ultralight,Mifare Ultraght C和NTAG 203的NFC读取器和NFC写入器。还可以用作Mifare Classic 1K的NFC读取器和NFC写入器。 *它将在特定页面上写入Mifare Mifare Ultralight,Ultralight C和...
  • android nfc写入

    2015-11-05 11:44:25
    android nfc写入应用程序包名并自动打开
  • 关于新技术NFC写入和读取的功能,想了解NFC技术的可以参考下,
  • NFC写入工具,包括对NTAG213开启密码保护和关闭密码保护的功能 NTAG213密码保护开启(采用MifareUltralight配置): 配合食用: /** * 写入NFC设置密码 */ private fun writePassword(mfc: MifareUltralight) { ...
  • 安卓手机大部分手机提供了NFC芯片 可以根据NFC传递数据 NFC卡与手机 手机与手机数据等交互 非常好的功能,这篇文章教大家如何向NFC卡或标签写入功能。  DEMO下载地址...

           安卓手机大部分手机提供了NFC芯片   可以根据NFC传递数据   NFC卡与手机  手机与手机数据等交互  非常好的功能,这篇文章教大家如何向NFC卡或标签写入功能。

           DEMO下载地址http://download.csdn.net/detail/u012303938/9243233

           用法 :  点击包名   将NFC标签靠近手机后置摄像头附近即可  

           效果 : 第一次靠近  将自己的应用程序包名写入nfc标签,第二次靠近    会自动打开自己写入的应该程序。

           注意几点:

           1、清单文件要加上权限  activity使用singleTop启动模式

           2、NFC主要用到  NdfcAdapter与PendingIntent去建立联系

           3、Tag tag=intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);方法去取nfc里的资源

           代码如下:

    package com.example.autonfc;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import android.support.v7.app.ActionBarActivity;
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.ListActivity;
    import android.app.PendingIntent;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.content.pm.PackageInfo;
    import android.content.pm.PackageManager;
    import android.net.Uri;
    import android.nfc.FormatException;
    import android.nfc.NdefMessage;
    import android.nfc.NdefRecord;
    import android.nfc.NfcAdapter;
    import android.nfc.NfcManager;
    import android.nfc.Tag;
    import android.nfc.tech.Ndef;
    import android.nfc.tech.NdefFormatable;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;
    
    
    public class MainActivity extends Activity implements OnItemClickListener{
      private List<String> list;
      private NfcAdapter adapters;
      private PendingIntent intent;
      private String packageName;
      private ListView listView1;
      private NdefMessage ndefMessage;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            listView1=(ListView) findViewById(R.id.listView1);
            list=new ArrayList<String>();
            PackageManager manager=getPackageManager();
            List<PackageInfo> PackageInfos= manager.getInstalledPackages(PackageManager.GET_ACTIVITIES);
            for(PackageInfo info: PackageInfos){
            	list.add(info.applicationInfo.loadLabel(manager)+"\n"+
            			info.packageName);
            }
            ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, 
            		android.R.layout.simple_list_item_1, list);
            listView1.setAdapter(adapter);
            listView1.setOnItemClickListener(this);
            
            adapters=NfcAdapter.getDefaultAdapter(this);
    		intent=PendingIntent.getActivity(this, 0, new Intent(this,getClass()), 0);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    
    	@Override
    	public void onItemClick(AdapterView<?> parent, View view, int position,
    			long id) {
    		// TODO Auto-generated method stub
    		packageName=list.get(position);
    		Toast.makeText(this, "选择了"+packageName, Toast.LENGTH_SHORT).show();
    		
    	}
    	@Override
    		protected void onResume() {
    			// TODO Auto-generated method stub
    			super.onResume();
    			if(adapters!=null){
    				adapters.enableForegroundDispatch(this, intent, null, null);
    			}
    			
    		}
    	
    	@Override
    		protected void onPause() {
    			// TODO Auto-generated method stub
    			super.onPause();
    			if(adapters!=null){
    				adapters.disableForegroundDispatch(this);
    			}
    			
    		}
    	@Override
    		protected void onNewIntent(Intent intent) {
    			// TODO Auto-generated method stub
    			super.onNewIntent(intent);
    			Toast.makeText(this, "执行了", Toast.LENGTH_SHORT).show();
    			Tag tag=intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
    			if(packageName==null){
    				Toast.makeText(this, "请选择包名", Toast.LENGTH_SHORT).show();
    				return;
    			}
    			onWriteNFC(tag);
    			
    		}
    	
    	public void onWriteNFC(final Tag tag){
    		if(tag==null){
    			Toast.makeText(this, "没有找到TAG", Toast.LENGTH_SHORT).show();
    			return;
    		}
    		Toast.makeText(this, "tag有值", Toast.LENGTH_SHORT).show();
    		ndefMessage=new NdefMessage(new NdefRecord[]{NdefRecord.createApplicationRecord(packageName)});
    		//写入一个网址 
    		//ndefMessage=new NdefMessage(new NdefRecord[]{NdefRecord.createUri(Uri.parse("http://www.baidu.com"))});
    		
    		int size=ndefMessage.toByteArray().length;
    	    Toast.makeText(this, "要写入信息的长度"+size, Toast.LENGTH_SHORT).show();
    	    Ndef ndef=Ndef.get(tag);
    	    
    	    if(ndef!=null){
    	    	try {
    				ndef.connect();
    				if(!ndef.isWritable()){
    					Toast.makeText(this, "NFC卡不支持写入", Toast.LENGTH_SHORT).show();
    					return;
    				}
    				if(ndef.getMaxSize()<size){
    					Toast.makeText(this, "NFC卡内存不够", Toast.LENGTH_SHORT).show();
    					return;
    				}
    				ndef.writeNdefMessage(ndefMessage);
    				Toast.makeText(this, "NFC卡写入成功", Toast.LENGTH_SHORT).show();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			} catch (FormatException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    	    }else{
    	    	Toast.makeText(this, "此卡不是ndef格式", Toast.LENGTH_SHORT).show();
    	    	new AlertDialog.Builder(this).setTitle("是否格式化成ndef格式,并写入包名")
    	    	.setPositiveButton("是", new AlertDialog.OnClickListener() {
    				
    				@Override
    				public void onClick(DialogInterface dialog, int which) {
    					// TODO Auto-generated method stub
    					NdefFormatable  formatable=NdefFormatable.get(tag);
    					if(formatable==null){
    						Toast.makeText(MainActivity.this, "此卡不能ndef格式化", 
    								Toast.LENGTH_SHORT).show();
    					    return;
    					}
    					try {
    						formatable.connect();
    						formatable.format(ndefMessage);
    						Toast.makeText(MainActivity. this, "NFC卡写入成功", Toast.LENGTH_SHORT).show();
    					} catch (IOException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					} catch (FormatException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    				}
    			}).setNegativeButton("否", null).create().show();
    	    }
    	}
    	
    }
    

    展开全文
  • 配置NFC相关的权限 <!-- 添加NFC权限 --> <uses-permission android:name="android.permission.NFC" /> <!-- 要求当前设备必须要有NFC芯片 --> <uses-feature android:name="android....
    先放GITHUB 链接,可以直接跑一下代码体验一下https://github.com/TracyEminem/NFCNDEF
    
    配置NFC相关的权限
    

    看一下GIF的效果

     

     

    <!-- 添加NFC权限 -->
    <uses-permission android:name="android.permission.NFC" /> <!-- 要求当前设备必须要有NFC芯片 -->
    <uses-feature
        android:name="android.hardware.nfc"
        android:required="true" />

    接收的activity应该这样设置,加上intent filter,利用intent filter来启动指定的activity

    <activity
        android:name=".NfcReadActivity"
        android:launchMode="singleInstance">
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
            <data
                android:host="ext"  //此处照写,标准写法
                android:pathPrefix="/vndcn.com:nfc"//这里是你后面写入的数据的一部分createexternal部分数据
               android:scheme="vnd.android.nfc" />  //此处照写,标准写法  
     </intent-filter>
    </activity>

    写入包名和数据

    NdefMessage ndefMessage = new NdefMessage(new NdefRecord[]{NdefRecord.createExternal("vndcn.com", "nfc", content.getBytes()),NdefRecord.createApplicationRecord("com.mobile.cloud.nfcnde")});
    //可以添加多条记录,content就是你要写入的内容,createApplicationRecord就是吸入你的包名

    //下面是如何读取NFC写入的信息。

        private String getCardId(Intent intent) {
            Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
            byte[] bytesId = tagFromIntent.getId();
            readNfcTag(intent);
            Ndef ndef = Ndef.get(tagFromIntent);
            return byteArrayToHexString(bytesId);
        }
      private void readNfcTag(Intent intent) {
            if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
                Parcelable[] rawMsgs = intent.getParcelableArrayExtra(
                        NfcAdapter.EXTRA_NDEF_MESSAGES);
                NdefMessage msgs[] = null;
                int contentSize = 0;
                if (rawMsgs != null) {
                    msgs = new NdefMessage[rawMsgs.length];
                    for (int i = 0; i < rawMsgs.length; i++) {
                        msgs[i] = (NdefMessage) rawMsgs[i];
                        contentSize += msgs[i].toByteArray().length;
                    }
                }
                try {
                    if (msgs != null) {
                        NdefRecord record = msgs[0].getRecords()[0];
    //                    String textRecord = parseTextRecord(record);
                        byte[] payload = record.getPayload();
                        String res = new String(payload);
                        mContent.setText("content url is: "+res);
                    }
                } catch (Exception e) {
                }
            }
        }

     

     

     

     

    展开全文
  • 新技术NFC与HTML5桌面通知 (Notifications) 通过桌面通知系统,网站可以在用户桌面弹出一条通知,无论用户是否浏览当前网页,甚至最小化了浏览器,通知均可到达用户桌面。 if (window.webkitNotifications....

    新技术NFC与HTML5

    桌面通知 (Notifications) 通过桌面通知系统,网站可以在用户桌面弹出一条通知,无论用户是否浏览当前网页,甚至最小化了浏览器,通知均可到达用户桌面。 if (window.webkitNotifications.checkPermission() == 0) { var title = '领跑HTML5支持 傲游升级自主内核', text = '桌面通知时HTML5的独门秘籍'; window.webkitNotifications.createNotification('', title, text).show(); } 多媒体 音频和视频 (Audio + Video) Audio和Video是首批添加到HTML规范中的标签。它们的加入使得我们可以像插入图片一样来处理音频及视频文件。 三维、图形与特效 Canvas 画布元素 传统的网页,总是使用GIF或者JPEG来显示图像,这种图形是需要事先画好的“静态”的图像。而Canvas,则是用Javascript的一种绘图手段。 可以用它来画图、合成图象、或做简单的(和不那么简单的)动画。 WebGL WebGL是一种3D绘图标准,有别于过往需加装浏览器插件,透过WebGL的技术,只需要编写网页代码即可实现3D图像的展示。 WebGL完美地解决了现有的Web交互式三维动画的两个问题: 第一,它通过HTML脚本本身实现Web交互式三维动画的制作,无需任何浏览器插件支持; 第二,它利用底层的图形硬件加速功能进行的图形渲染,是通过统一的、标准的、跨平台的OpenGL接口实现的。 性能与集成 XMLHttpRequest 2 作为XMLHttpRequest的改进版,XMLHttpRequest Level 2在功能上有了很大的改进。支持跨源XMLHttpRequest和进度事件(Progress events)。 计算上传进度: xhr.upload.addEventListener("progress", function (e) { var pc = parseInt(100 –(e.loaded / e.total * 100)); progress.style.backgroundPosition = pc + " %"; } CSS3 颜色 (Color) 透明度: opacity: 0.1; opacity: 0.5; opacity: 0.9; RGBA色彩模式: color: rgba(255, 0, 0, 0.75); PS: RGBA是在RGB的基础上多了控制alpha透明度的参数。 HSL色彩模式: color: hsl(0, 100%, 50%); PS: HSL色彩模式是工业界的一种颜色标准,HSL分别代表色调,饱和度,亮度三个通道。 文本 (Text) 文本阴影: text-shadow: 0 0 20px #fefcc9, 10px -10px 30px #feec85, -20px -20px 40px #ffae34, 20px -40px 50px #ec760c, -20px -60px 60px #cd4606, 0 -80px 70px #973716, 10px -90px 80px #451b0e; 省略标记: text-overflow: ellipsis; PS: 需配合 white-space: nowrap;overfl

    展开全文
  • 这是堆栈跟踪: 07-09 00:19:44.836: W/System.err(13167): at android.nfc.TransceiveResult.getResponseOrThrow(TransceiveResult.java:52) 07-09 00:19:44.843: W/System.err(13167): at android.nfc.tech....

    我正在尝试在Mifare 1K标签上的第0扇区的第一个块写一个简单的“Hello World”字符串.标签是全新的,具有默认配置.扇区尾部(块3)在读取时为:00 00 00 00 00 00 00 00 ff 07 80 69 ff ff ff ff ff ff ff ff.因此,访问条件是ff 07 80 69,这意味着我可以使用密钥A在每个块上进行读写.

    不过,我无法在标签上写任何东西.这是我的代码:

    try {

    mfc.connect();

    boolean auth = false;

    auth = mfc.authenticateSectorWithKeyA(0,MifareClassic.KEY_DEFAULT);

    if (auth) {

    String text = "Hello, World!";

    byte[] value = text.getBytes();

    byte[] toWrite = new byte[MifareClassic.BLOCK_SIZE];

    for (int i=0; i

    if (i < value.length) toWrite[i] = value[i];

    else toWrite[i] = 0;

    }

    mfc.writeBlock(0, toWrite);

    }

    我收到以下异常:收发失败.

    我究竟做错了什么?

    这是堆栈跟踪:

    07-09 00:19:44.836: W/System.err(13167): at android.nfc.TransceiveResult.getResponseOrThrow(TransceiveResult.java:52)

    07-09 00:19:44.843: W/System.err(13167): at android.nfc.tech.BasicTagTechnology.transceive(BasicTagTechnology.java:151)

    07-09 00:19:44.843: W/System.err(13167): at android.nfc.tech.MifareClassic.writeBlock(MifareClassic.java:453)

    07-09 00:19:44.843: W/System.err(13167): at com.example.andorid.apis.mifare.MainActivity.resolveIntent(MainActivity.java:128)

    07-09 00:19:44.843: W/System.err(13167): at com.example.andorid.apis.mifare.MainActivity.onNewIntent(MainActivity.java:275)

    07-09 00:19:44.843: W/System.err(13167): at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1123)

    07-09 00:19:44.843: W/System.err(13167): at android.app.ActivityThread.deliverNewIntents(ActivityThread.java:2041)

    07-09 00:19:44.843: W/System.err(13167): at android.app.ActivityThread.performNewIntents(ActivityThread.java:2054)

    07-09 00:19:44.843: W/System.err(13167): at android.app.ActivityThread.handleNewIntent(ActivityThread.java:2063)

    07-09 00:19:44.843: W/System.err(13167): at android.app.ActivityThread.access$1400(ActivityThread.java:122)

    07-09 00:19:44.843: W/System.err(13167): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1193)

    07-09 00:19:44.851: W/System.err(13167): at android.os.Handler.dispatchMessage(Handler.java:99)

    07-09 00:19:44.851: W/System.err(13167): at android.os.Looper.loop(Looper.java:137)

    07-09 00:19:44.851: W/System.err(13167): at android.app.ActivityThread.main(ActivityThread.java:4340)

    07-09 00:19:44.851: W/System.err(13167): at java.lang.reflect.Method.invokeNative(Native Method)

    07-09 00:19:44.851: W/System.err(13167): at java.lang.reflect.Method.invoke(Method.java:511)

    07-09 00:19:44.851: W/System.err(13167): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)

    07-09 00:19:44.851: W/System.err(13167): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)

    07-09 00:19:44.851: W/System.err(13167): at dalvik.system.NativeStart.main(Native Method)

    展开全文
  • 安卓手机大部分手机提供了NFC芯片 可以根据NFC传递数据 NFC卡与手机 手机与手机数据等交互 非常好的功能,这篇文章教大家如何向NFC卡或标签写入功能。用法 : 点击包名 将NFC标签靠近手机后置摄像头附近即可效果 : ...
  • 恩智浦TagWriter应用商店联系人,书签,地理定位,蓝牙切换,短信,邮件,短信等等任何支持NFC的标签,以及像海报,名片,手表和许多含NFC功能的电子产品。一旦数据被存储在应用程序也可以读取和查看编程的数据,...
  • NFC实现写入NFC贴纸,读取打开自定义应用
  • NFC读取写入简单使用

    2021-03-12 16:55:05
    适用于无加密普通NFC卡片数据读取写入
  • 最近做一个NFC标签的写入读取TEXT的android应用,遇到一个NDEF格式TEXT数据写入的问题,为什么每次写入数据都会把上一次的写入数据覆盖掉,造成每次读取都只能读取到最后一次写入的数据,求哪位大神指点迷津,...
  • NFC 读写标签,读取和写入是提供了什么安全措施的呢? 如何做到一个nfc标签只能由指定的写入写入呢? 就类似一张交通卡, 外部NFC手机可以进行读取nfc的数据, 那写入是怎么样限制到只有交通公司才可以写入 否则岂...
  • NFC 标签 读取和写入数据demo 不错的值得研究一下
  • 适用于无加密普通NFC卡片数据读取写入
  • NFC标签写入数据基本步骤 1,获取Tag对象  Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 2,判断NFC标签的数据类型(通过Ndef.get方法)  Ndef ndef = Ndef.get(tag); 3,NFC开始连接  ndef...
  • 门禁卡写入NFC手环手机教程
  • android 实现Nfc数据读取和写入

    热门讨论 2014-03-21 17:20:25
    实现了nfc功能的基本数据读取和写入功能,对兴趣爱好者有所帮助.
  • NFC应用 这个存储库包含一个 NFC Android 应用程序,用于从/向 NFC 标签读取和写入
  • 将指定信息合成条形码,并将图片文件或文字信息通过NFC传文件或写标签的方式存入NFC标签。
  • 首先在AndroidManifest.xml文件中添加如下配置 <!-- SDK版本至少为14 --> <uses-sdk android:minSdkVersion="14"/>...uses-permission android:name="android.permission.NFC" /> <!-- ...
  • I have developed a system that can read NFC tag using a reader with PN532 chip. It works ok. I can read Mifare Classic and Mifare Ultralight tag.Now I'd like to use a Nexus Tablet with Android 4.4.2 t...
  • NFC标签读取和写入数据demo,亲测可用
  • 电容器NFC插件 本机插件可读取NFC标签。 要将插件安装在您的项目中,请运行: npm install --save capacitor-nfc@latest 支持平台 安卓 的iOS (对不起,我没有,也没有计划购买iPhone。欢迎您为iOS捐款。) ...
  • nfc电子标签是一个可以擦写输入数据信息的小型芯片,将你想要的设置的某项应用功能通过nfc手机写入标签里,例如;启动飞行模式,启动音乐库以及视频等等应用,你也可以设置某些个性化的应用,具体如何读取和写入?一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,307
精华内容 1,722
关键字:

nfc写入