搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小丑西瓜9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Extjs 轻松实现同步
2
Android 系统级服务大全_android 系统服务
3
C# WPF新版开源控件库:Newbeecoder.UI_newbeecoder.ui下载
4
Python中ArcPy基于矢量要素批量将栅格影像切割为多个小部分_多个元素的矢量文件裁剪栅格
5
mysql修改表时添加默认约束和删除默认约束_修改为字段添加默认约束
6
微信小程序添加用户隐私保护指引_微信小程序 用户隐私保护提示
7
Android: Gradle 命令
8
PHP添加中文水印
9
CrossOver2023快速在Mac和Linux系统上运行Windows软件_crossover linux
10
linux录制pcm音频的命令,如何在Linux上使用ffmpeg录制音频?
当前位置:
article
> 正文
make a vcard/vcal Ndef message on Android_text/x-vcard
作者:小丑西瓜9 | 2024-03-26 05:14:14
赞
踩
text/x-vcard
[java]
view plain
copy
print
?
NfcAdapter adapter;
PendingIntent pendingIntent;
IntentFilter writeTagFilters[];
Tag tag;
Context ctx;
boolean
writeMode;
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_text);
getActionBar().setDisplayHomeAsUpEnabled(
true
);
ctx =
this
;
Switch swWrite = (Switch) findViewById(R.id.switchWriteText);
//final TextView msg = (TextView) findViewById(R.id.editText1);
final
String msg =
"BEGIN:VCARD\n"
+
"VERSION:2.1\n"
+
"N:Gump;Forrest\n"
+
"FN:Forrest Gump\n"
+
"ORG:Bubba Gump Shrimp Co.\n"
+
"TITLE:Shrimp Man\n"
+
"TEL;WORK;VOICE111) 555-1212\n"
+
"TEL;HOME;VOICE404) 555-1212\n"
+
"ADR;WORK:;;100 Edge;Baytown;United\n"
+
"EMAIL;PREF;INTERNET:forrestgump@example.com\n "
+
"END:VCARD"
;
swWrite.setOnCheckedChangeListener(
new
CompoundButton.OnCheckedChangeListener() {
@Override
public
void
onCheckedChanged(CompoundButton buttonView,
boolean
isChecked) {
if
(isChecked) {
try
{
if
(tag ==
null
) {
Toast.makeText(ctx,
ctx.getString(R.string.error_detected),
Toast.LENGTH_SHORT).show();
}
else
{
write(msg, tag);
Toast.makeText(ctx,
ctx.getString(R.string.ok_writing),
Toast.LENGTH_LONG).show();
}
}
catch
(IOException e) {
Toast.makeText(ctx,
ctx.getString(R.string.error_writing),
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
catch
(FormatException e) {
Toast.makeText(ctx,
ctx.getString(R.string.error_writing),
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
}
});
/* INTENT FILTER */
adapter = NfcAdapter.getDefaultAdapter(
this
);
pendingIntent = PendingIntent.getActivity(
this
,
0
,
new
Intent(
this
,
getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP),
0
);
IntentFilter tagDetected =
new
IntentFilter(
NfcAdapter.ACTION_TAG_DISCOVERED);
tagDetected.addCategory(Intent.CATEGORY_DEFAULT);
writeTagFilters =
new
IntentFilter[] { tagDetected };
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_text, menu);
return
true
;
}
@Override
public
boolean
onOptionsItemSelected(MenuItem item) {
switch
(item.getItemId()) {
case
android.R.id.home:
NavUtils.navigateUpFromSameTask(
this
);
return
true
;
}
return
super
.onOptionsItemSelected(item);
}
private
void
write(String text, Tag tag)
throws
IOException,
FormatException {
NdefRecord[] records = { createRecord(text) };
NdefMessage message =
new
NdefMessage(records);
// Get an instance of Ndef for the tag.
Ndef ndef = Ndef.get(tag);
// Enable I/O
ndef.connect();
// Write the message
ndef.writeNdefMessage(message);
// Close the connection
ndef.close();
}
private
NdefRecord createRecord(String text)
throws
UnsupportedEncodingException {
String msg =
"BEGIN:VCARD\n"
+
"VERSION:2.1\n"
+
"N:Gump;Forrest\n"
+
"FN:Forrest Gump\n"
+
"ORG:Bubba Gump Shrimp Co.\n"
+
"TITLE:Shrimp Man\n"
+
"TEL;WORK;VOICE:55-1212\n"
+
"TEL;HOME;VOICE:55-1212\n"
+
"ADR;WORK:;;100 Edge;Ban;United\n"
+
"EMAIL;PREF;INTERNET:p@example.com\n "
+
"END:VCARD"
;
byte
[] textBytes = msg.getBytes();
NdefRecord textRecord =
new
NdefRecord(NdefRecord.TNF_MIME_MEDIA,
"text/x-vCard"
.getBytes(),
new
byte
[] {}, textBytes);
return
textRecord;
}
@Override
protected
void
onNewIntent(Intent intent) {
if
(NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
Toast.makeText(
this
,
this
.getString(R.string.ok_detection) + tag.toString(),
Toast.LENGTH_LONG).show();
}
}
@Override
public
void
onPause() {
super
.onPause();
WriteModeOff();
}
@Override
public
void
onResume() {
super
.onResume();
WriteModeOn();
}
private
void
WriteModeOn() {
writeMode =
true
;
adapter.enableForegroundDispatch(
this
, pendingIntent, writeTagFilters,
null
);
}
private
void
WriteModeOff() {
writeMode =
false
;
adapter.disableForegroundDispatch(
this
);
}
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小丑西瓜9/article/detail/314864
推荐阅读
article
试试TextLogoLayout生成自己的
logo
_
aesthetic
text
logo
syth...
文本徽标布局这是论文的官方 Pytorch 实现:通过内容感知布局推断的审美文本标志合成。2022 年简历。论文:arx...
赞
踩
article
【HarmonyOS】ArkUI -
Image
、
Text
、
Text
Input、
Button
、Sli...
ArkUI 基础组件用法,resources资源访问_
harmonyos
textinput backgroundima...
赞
踩
article
鸿蒙Harmony(六)ArkUI---基础组件:
Image
、
Text
、
Text
Input、Butt...
【代码】鸿蒙Harmony(六)ArkUI---基础组件:
Image
、
Text
、
Text
Input、
Button
、Sli...
赞
踩
article
c++下
open
cv
报错:
undefined
reference to`
cv
::fastFree(v...
错误信息:/tmp/
cc9yZhef
.o: In
function
`
cv
::
Mat
::~
Mat
()':
main
.cpp...
赞
踩
article
autoware
解决报错:get_
Depth
.cpp:(.
text
+
0x9c8
): undefine...
【代码】
autoware
解决报错:get_
Depth
.cpp:(.
text
+
0x9c8
):
undefined
refe...
赞
踩
article
au
to
ware解决报错:
calibration
_
publisher
.cpp:(.
text
+0x26...
2.crtl+f查找include_direc
to
ries将所有的include_direc
to
ries加上${Open...
赞
踩
article
解决:No
converter
for
[
xxxx
] with preset
Content
-Typ...
错误No
converter
for
[
xxxx
] with preset
Content
-
Type
'
text
/pla...
赞
踩
article
Echarts
环形图图例内容+数据+
换行
_
echarts
pie
环形
title
text
自定...
由于legen.formatter return的数据并不支持直接
换行
所以只能用/n进行
换行
。但是使用\n后的内容并不能...
赞
踩
article
selenium
指定谷歌用户,报错:Message:
unknown
error
:
failed
t...
本地电脑谷歌浏览器有好几个谷歌用户账号,因需求需要用
selenium
打开指定的谷歌用户,但是报错:
selenium
.co...
赞
踩
article
配置
内核
(
make
menuconfig
)详述_
menuconfig
配置
ym...
#
make
menuconfig
在选择相应的
配置
时,有三种选择方式,它们分别代表的含义如下: Y--将该功能编译进
内核
...
赞
踩
article
【精华】
AIGC
专栏-
Text
/Img/
Video
/
audio
_
grad
svc
...
AIGC
专栏_
grad
svc
grad
svc
文章目录 (...
赞
踩
article
鸿蒙 Router提示 100002错误_
pushurl
failed
,
code
is
10000...
app Log: 错误信息100002 ,
message
is
Uri
err
or. The
uri
of route...
赞
踩
article
IntelliJ IDEA 通过
Mark
as
plain
text
将文件标记为普通文本_lin...
标记为普通文本后,索引、检查、代码完成什么的就都没了。连代码高亮都一起嗝屁了。标记使用:
Mark
as
plain
te...
赞
踩
article
idea
中文件被
Mark
as
Plain
Text
后恢复_
this
file
w
as
explic...
在
idea
中不小心把文件进行
Mark
as
Plain
Text
标记后,会变成纯文本_
this
file
w
as
exp...
赞
踩
article
消息
认证码
(
message
authentication
code)
MAC
...
消息
认证码
,或者
MAC
,用于检测对消息的串改。加密使Eve不能够获取消息的内容,但不能防止Eve对消息进行操作,这是就需...
赞
踩
article
密码编码学初探——
消息
认证码
_
cipher
-
based
message
authentication
...
消息
认证 HMAC MAC:DAA CMAC
消息
认证:用来验证
消息
完整性的一种机制或者服务。
消息
仍正确保收到 的数据确...
赞
踩
article
浅浅学习一下
消息
认证码
MAC
(
Message
Authentication
Code
)...
浅浅学习一下
消息
认证码
MAC
(
Message
Authentication
Code
)_
消息
认证码
mac
消息
认证码
mac...
赞
踩
article
消息认证的算法
Message
Authentication
Code
介绍_
message
cod...
消息认证码(
Message
Authentication
Code
,MAC)是一种用于验证消息完整性和真实性的密码学算法...
赞
踩
article
Self
-Attentive
Speaker
Embeddings
for
Text
-Indepen...
Self
-Attentive
Speaker
Embeddings
for
Text
-Independent Speak...
赞
踩
article
【
Linux
系统编程六】:
Linux
小
程序
:
进度
条
实现
(
make
/
make
file自动构建)_mak...
深入篇【
Linux
】学习必备:
Linux
小
程序
:
进度
条
实现
(
make
/
make
file自动构建)
进度
条
如何
实现
?如何做出...
赞
踩
相关标签
pytorch
深度学习
python
鸿蒙
harmonyos
鸿蒙系统
arkts
arkui
华为
ubuntu
自动驾驶
linux
java
spring
echarts
前端
selenium
测试工具
LLinux内核
AIGC
intellij idea
纯文本
idea
其他