package gnu.sercd;
import java.io.File;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.Enumeration;
import android.app.AlertDialog;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.Preference.OnPreferenceChangeListener;
import android.serialport.SerialPortFinder;
import android.util.Log;
public class Sercd extends PreferenceActivity {
protected static final String TAG = "Sercd";
private CheckBoxPreference mEnabled;
private ListPreference mSerialPort;
private ListPreference mNetworkInterfaces;
private EditTextPreference mNetworkPort;
private OnPreferenceChangeListener mPreferenceChangeListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
preference.setSummary((CharSequence)newValue);
return true;
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* Load preferences from XML */
addPreferencesFromResource(R.xml.preferences);
/* Fetch corresponding Java objects */
mEnabled = (CheckBoxPreference)findPreference("enabled");
mSerialPort = (ListPreference)findPreference("serialport");
mNetworkInterfaces = (ListPreference)findPreference("netinterface");
mNetworkPort = (EditTextPreference)findPreference("portnumber");
/* Complete lists, etc */
mSerialPort.setOnPreferenceChangeListener(mPreferenceChangeListener);
mSerialPort.setSummary(mSerialPort.getValue());
mNetworkInterfaces.setOnPreferenceChangeListener(mPreferenceChangeListener);
mNetworkInterfaces.setSummary(mNetworkInterfaces.getValue());
mNetworkPort.setOnPreferenceChangeListener(mPreferenceChangeListener);
mNetworkPort.setSummary(mNetworkPort.getText());
mEnabled.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if ((Boolean)newValue) {
String serialport = mSerialPort.getValue();
String networkinterface = mNetworkInterfaces.getValue();
/* Check access permission */
File device = new File(serialport);
if (!device.canRead() || !device.canWrite()) {
try {
/* Missing read/write permission, trying to chmod the file */
Process su;
su = Runtime.getRuntime().exec("/system/bin/su");
String cmd = "chmod 666 " + device.getAbsolutePath() + "\n"
+ "exit\n";
su.getOutputStream().write(cmd.getBytes());
if ((su.waitFor() != 0) || !device.canRead()
|| !device.canWrite()) {
new AlertDialog.Builder(Sercd.this)
.setMessage(R.string.su_failed)
.show();
return false;
}
} catch (Exception e) {
e.printStackTrace();
new AlertDialog.Builder(Sercd.this)
.setMessage(R.string.su_failed)
.show();
return false;
}
}
int port = Integer.parseInt(mNetworkPort.getText());
Log.d(TAG, "Starting sercd with parameters "
+ serialport + ", " + networkinterface
+ ":" + port);
SercdService.Start(
Sercd.this,
serialport,
networkinterface,
port
);
} else {
SercdService.Stop(Sercd.this);
}
return true;
}
});
feedNetworkInterfacesList();
feedSerialPortList();
if (mEnabled.isChecked()) {
// SercdService.Start(this, "/dev/ttyMSM2", "127.0.0.1", 30001);
}
}
private void feedSerialPortList() {
SerialPortFinder spf = new SerialPortFinder();
mSerialPort.setEntries(spf.getAllDevices());
mSerialPort.setEntryValues(spf.getAllDevicesPath());
}
private void feedNetworkInterfacesList() {
Enumeration<NetworkInterface> nets;
try {
nets = NetworkInterface.getNetworkInterfaces();
ArrayList<String> displaynames = new ArrayList<String>();
ArrayList<String> names = new ArrayList<String>();
while(nets.hasMoreElements()) {
NetworkInterface net = nets.nextElement();
Enumeration<InetAddress> inets = net.getInetAddresses();
while(inets.hasMoreElements()) {
InetAddress inet = inets.nextElement();
String address = inet.getHostAddress();
displaynames.add(address + " (" + net.getDisplayName() + ")");
names.add(address);
}
}
int size = displaynames.size();
int i;
CharSequence[] a = new CharSequence[size];
CharSequence[] b = new CharSequence[size];
for (i=0; i<size; i++) {
a[i] = displaynames.get(i);
b[i] = names.get(i);
}
mNetworkInterfaces.setEntries(a);
mNetworkInterfaces.setEntryValues(b);
} catch (SocketException e) {
e.printStackTrace();
}
}
@Override
protected void onDestroy() {
// SercdService.Stop(this);
super.onDestroy();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
android 官方串口源码
共185个文件
svn-base:64个
all-wcprops:33个
entries:33个
5星 · 超过95%的资源 需积分: 17 26 下载量 149 浏览量
2016-09-29
12:55:53
上传
评论 1
收藏 314KB ZIP 举报
温馨提示
https://code.google.com/archive/p/android-serialport-api/source/default/source下载的,外网不方便可以下载这个,里面已经包含arm的so库和armv7a的so库
资源推荐
资源详情
资源评论
收起资源包目录
android 官方串口源码 (185个子文件)
all-wcprops 1KB
all-wcprops 1KB
all-wcprops 732B
all-wcprops 633B
all-wcprops 590B
all-wcprops 530B
all-wcprops 440B
all-wcprops 420B
all-wcprops 367B
all-wcprops 355B
all-wcprops 354B
all-wcprops 260B
all-wcprops 260B
all-wcprops 258B
all-wcprops 250B
all-wcprops 242B
all-wcprops 232B
all-wcprops 218B
all-wcprops 216B
all-wcprops 184B
all-wcprops 99B
all-wcprops 98B
all-wcprops 98B
all-wcprops 97B
all-wcprops 96B
all-wcprops 93B
all-wcprops 89B
all-wcprops 89B
all-wcprops 86B
all-wcprops 65B
all-wcprops 63B
all-wcprops 61B
all-wcprops 57B
sercd.c 53KB
unix.c 26KB
SerialPort.c 4KB
android.c 2KB
.classpath 273B
COPYING 18KB
.cproject 30KB
entries 2KB
entries 1KB
entries 1KB
entries 1KB
entries 887B
entries 780B
entries 738B
entries 621B
entries 614B
entries 573B
entries 570B
entries 437B
entries 433B
entries 428B
entries 428B
entries 425B
entries 421B
entries 407B
entries 405B
entries 402B
entries 303B
entries 295B
entries 294B
entries 281B
entries 268B
entries 267B
entries 266B
entries 260B
entries 259B
entries 254B
entries 250B
entries 205B
entries 201B
sercd.h 7KB
android.h 1KB
sercd-jni.h 913B
SerialPort.h 745B
unix.h 688B
Sercd.java 5KB
SercdService.java 4KB
SerialPortFinder.java 3KB
LoopbackActivity.java 3KB
SerialPortFinder.java 3KB
SerialPortActivity.java 3KB
MainMenu.java 3KB
SerialPort.java 2KB
SerialPortPreferences.java 2KB
ConsoleActivity.java 2KB
Application.java 2KB
Sending01010101Activity.java 2KB
Android.mk 831B
Android.mk 786B
Application.mk 69B
Application.mk 35B
icon.png 5KB
icon.png 5KB
notification_icon_connected.png 2KB
notification_icon_ready.png 2KB
.project 2KB
.project 816B
共 185 条
- 1
- 2
资源评论
- pizice2016-12-01感谢分享,有串口类可以直接调用
黄宝~
- 粉丝: 125
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 课程设计-基于SpringBoot + Mybatis+python爬虫NBA球员数据爬取可视化+源代码+文档+sql+效果图
- 软件品质管理系列二项目策划规范.doc
- 基于TensorFlow+PyQt+GUI的酒店评论情感分析,支持分析本地数据文件和网络爬取数据分析+源代码+文档说明+安装教程
- 软件定义无线电中的模拟电路测试技术.pptx
- 软件开发协议(作为技术开发合同附件).doc
- 软件开发和咨询行业技术趋势分析.pptx
- 软件测试题详解及答案.doc
- 软件漏洞生命周期管理策略.pptx
- 毕业设计-基于Python实现的的简易气温爬虫,可以爬取全国各市的近7日气温数据
- 软件系统测试报告(实用版).doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功