在android上运行python脚本
我正在努力运行一个 python 脚本,该脚本应该允许我使用 nfcpy 将文本写入标签。代码是从 https://code.launchpad.net/nfcpy
我已经在 Android 设备上安装了 LS4A,但是当我尝试运行该程序时,shell 告诉我我错过了 import nfc
包。我尝试过谷歌,但没有帮助。那么有人可以告诉我应该如何解决这个问题吗?
#!/usr/bin/python
# -*- coding: latin-1 -*-
# -----------------------------------------------------------------------------
# Copyright 2011 Stephen Tiedemann <[email protected]>
#
# Licensed under the EUPL, Version 1.1 or - as soon they
# will be approved by the European Commission - subsequent
# versions of the EUPL (the "Licence");
# You may not use this work except in compliance with the
# Licence.
# You may obtain a copy of the Licence at:
#
# http://www.osor.eu/eupl
#
# Unless required by applicable law or agreed to in
# writing, software distributed under the Licence is
# distributed on an "AS IS" basis,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
# express or implied.
# See the Licence for the specific language governing
# permissions and limitations under the Licence.
# -----------------------------------------------------------------------------
import os
import sys
import time
sys.path.insert(1, os.path.split(sys.path[0])[0])
import nfc
import nfc.ndef
import nfc.ndef.Text
def main():
clf = nfc.ContactlessFrontend()
print "Please touch a tag to send a hello to the world"
while True:
tag = clf.poll()
if tag and tag.ndef:
break
text_en = nfc.ndef.Text.TextRecord( ("en", "Hello World") )
text_de = nfc.ndef.Text.TextRecord( ("de", "Hallo Welt") )
text_fr = nfc.ndef.Text.TextRecord( ("fr", "Bonjour tout le monde") )
message = nfc.ndef.Message( [text_en, text_de, text_fr] )
tag.ndef.message = message.tostring()
print "Remove this tag"
while tag.is_present:
time.sleep(1)
print "Now touch it again to receive a hello from the world"
while True:
tag = clf.poll()
if tag and tag.ndef:
break
message = nfc.ndef.Message( tag.ndef.message )
for record in message:
if record.type == "urn:nfc:wkt:T":
text = nfc.ndef.Text.TextRecord( record )
print text.language + ": " + text.text
if __name__ == '__main__':
main()
提前致谢!
I'am struggling running a python script which should allow me to write a text to a tag by using the nfcpy.The code is downloaded from https://code.launchpad.net/nfcpy
I have installed LS4A on my android device, but when I try to run the program the shell tells me that I miss the import nfc
package. I tried google, but to no help. So can anybody tell me how I should solve this problem?
#!/usr/bin/python
# -*- coding: latin-1 -*-
# -----------------------------------------------------------------------------
# Copyright 2011 Stephen Tiedemann <[email protected]>
#
# Licensed under the EUPL, Version 1.1 or - as soon they
# will be approved by the European Commission - subsequent
# versions of the EUPL (the "Licence");
# You may not use this work except in compliance with the
# Licence.
# You may obtain a copy of the Licence at:
#
# http://www.osor.eu/eupl
#
# Unless required by applicable law or agreed to in
# writing, software distributed under the Licence is
# distributed on an "AS IS" basis,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
# express or implied.
# See the Licence for the specific language governing
# permissions and limitations under the Licence.
# -----------------------------------------------------------------------------
import os
import sys
import time
sys.path.insert(1, os.path.split(sys.path[0])[0])
import nfc
import nfc.ndef
import nfc.ndef.Text
def main():
clf = nfc.ContactlessFrontend()
print "Please touch a tag to send a hello to the world"
while True:
tag = clf.poll()
if tag and tag.ndef:
break
text_en = nfc.ndef.Text.TextRecord( ("en", "Hello World") )
text_de = nfc.ndef.Text.TextRecord( ("de", "Hallo Welt") )
text_fr = nfc.ndef.Text.TextRecord( ("fr", "Bonjour tout le monde") )
message = nfc.ndef.Message( [text_en, text_de, text_fr] )
tag.ndef.message = message.tostring()
print "Remove this tag"
while tag.is_present:
time.sleep(1)
print "Now touch it again to receive a hello from the world"
while True:
tag = clf.poll()
if tag and tag.ndef:
break
message = nfc.ndef.Message( tag.ndef.message )
for record in message:
if record.type == "urn:nfc:wkt:T":
text = nfc.ndef.Text.TextRecord( record )
print text.language + ": " + text.text
if __name__ == '__main__':
main()
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设您运行了此处显示的代码,并且没有
import android
等。无论如何,sl4a api尚不支持nfc。
Assuming that you ran the code as it appears here, you did not
import android
and so on.In any case, the sl4a api does not support nfc yet.