我是Android新手,我试图了解蓝牙连接的工作原理。为此,我使用了wiced的应用程序来了解工作。使用存储的MAC地址通过服务连接到蓝牙设备
在这里我想连接到一个特定的设备关于他们的MAC地址。我设法通过共享首选项来存储和检索MAC地址。现在我想连接到与MAC地址匹配的设备,无需用户交互。
要存储的MAC地址我做到以下几点:
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地址和我后启动服务:
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();
}
}
我retrive通过下面的代码相同不知道究竟该在哪里做。 任何形式的帮助表示赞赏。
我看到了适合我的情况[这里]的答案之一(http://stackoverflow.com/questions/15025852/how-to-move-bluetooth-activity-into-a-service)。如果任何人都可以提供给我更多的细节,特别是MyApplication和Abstract类,那将会非常有用。 – ADI