我是一名新手,正在学习Android并试图理解蓝牙连接的工作原理。为此,我使用了Wiced Sense应用程序来了解其工作方式。
在这里,我想根据MAC地址连接到特定的设备。我已经成功通过Shared Preferences存储和检索MAC地址。现在,我想在没有用户交互的情况下连接与MAC地址匹配的设备。
以下是存储MAC地址的步骤:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null || convertView.findViewById(R.id.device_name) == null) {
convertView = mInflater.inflate(R.layout.devicepicker_listitem, null);
holder = new ViewHolder();
String DeviceName;
holder.device_name = (TextView) convertView.findViewById(R.id.device_name);
// DeviceName= String.valueOf((TextView) convertView.findViewById(R.id.device_name));
holder.device_addr = (TextView) convertView.findViewById(R.id.device_addr);
holder.device_rssi = (ProgressBar) convertView.findViewById(R.id.device_rssi);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
DeviceRecord rec = mDevices.get(position);
holder.device_rssi.setProgress(normaliseRssi(rec.rssi));
editor = PreferenceManager.getDefaultSharedPreferences(mContext);
String deviceName = rec.device.getName();
if (deviceName != null && deviceName.length() > 0) {
holder.device_name.setText(rec.device.getName());
holder.device_addr.setText(rec.device.getAddress());
//Log.i(TAG, "Service onStartCommand");
if(deviceName.equals("eVulate")&& !editor.contains("MAC_ID")) {
storeMacAddr(String.valueOf(rec.device.getAddress()));
}
} else {
holder.device_name.setText(rec.device.getAddress());
holder.device_addr.setText(mContext.getResources().getString(R.string.unknown_device));
}
return convertView;
public void storeMacAddr(String MacAddr) {
editor.edit().putString("MAC_ID", MacAddr).commit();
}
}
我通过以下代码检索相同的内容:
我通过以下代码检索相同的内容:
private void initDevicePicker() {
final SharedPreferences mSharedPreference= PreferenceManager.getDefaultSharedPreferences(getBaseContext());
if(mSharedPreference.contains("MAC_ID")){
String value=(mSharedPreference.getString("MAC_ID", ""));
}
else
// search for devices
}
在获取MAC地址后,我想启动一个服务,但不知道确切的位置。任何帮助都将不胜感激。