【Android源码 栏目提醒】:网学会员,鉴于大家对Android源码 十分关注,论文会员在此为大家搜集整理了“DeviceListActivity.java android 源码 - 编程语言”一文,供大家参考学习!
DeviceListActivity.java android 源码 / Copyright C 2009 The Android Open Source Project Licensed under the Apache License Version 2.0 the License you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing software distributed under the License is distributed on an AS IS BASIS WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied. See the License for the specific language governing permissions and limitations under the License. / package com.example.android.BluetoothChat import java.util.Set import android.app.Activity import android.bluetooth.BluetoothAdapter import android.bluetooth.BluetoothDevice import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter import android.os.Bundle import android.util.Log import android.view.View import android.view.Window import android.view.View.OnClickListener import android.widget.AdapterView import android.widget.ArrayAdapter import android.widget.Button import android.widget.ListView import android.widget.TextView import android.widget.AdapterView.OnItemClickListener / This Activity appears as a dialog. It lists any paired devices and devices detected in the area after discovery. When a device is chosen by the user the MAC address of the device is sent back to the parent Activity in the result Intent. / public class DeviceListActivity extends Activity // Debugging private static final String TAG DeviceListActivity private static final boolean D true // Return Intent extra public static String EXTRA_DEVICE_ADDRESS device_address // Member fields private BluetoothAdapter mBtAdapter private ArrayAdapter mPairedDevicesArrayAdapter private ArrayAdapter mNewDevicesArrayAdapter Override protected void onCreateBundle savedInstanceState super.onCreatesavedInstanceState // Setup the window requestWindowFeatureWindow.FEATURE_INDETERMINATE_PROGRESS setContentViewR.layout.device_list // Set result CANCELED incase the user backs out setResultActivity.RESULT_CANCELED // Initialize the button to perform device discovery Button scanButton Button findViewByIdR.id.button_scan scanButton.setOnClickListenernew OnClickListener public void onClickView v doDiscovery v.setVisibilityView.GONE // Initialize array adapters. One for already paired devices and // one for newly discovered devices mPairedDevicesArrayAdapter new ArrayAdapterthis R.layout.device_name mNewDevicesArrayAdapter new ArrayAdapterthis R.layout.device_name // Find and set up the ListView for paired devices ListView pairedListView ListView findViewByIdR.id.paired_devices pairedListView.setAdaptermPairedDevicesArrayAdapter pairedListView.setOnItemClickListenermDeviceClickListener // Find and set up the ListView for newly discovered devices ListView newDevicesListView ListView findViewByIdR.id.new_devices newDevicesListView.setAdaptermNewDevicesArrayAdapter newDevicesListView.setOnItemClickListenermDeviceClickListener // Register for broadcasts when a device is discovered IntentFilter filter new IntentFilterBluetoothDevice.ACTION_FOUND this.registerReceivermReceiver filter // Register for broadcasts when discovery has finished filter new IntentFilterBluetoothAdapter.ACTION_DISCOVERY_FINISHED this.registerReceivermReceiver filter // Get the local Bluetooth adapter mBtAdapter BluetoothAdapter.getDefaultAdapter // Get a set of currently paired devices Set pairedDevices mBtAdapter.getBondedDevices // If there are paired devices add each one to the ArrayAdapter if pairedDevices.size 0 findViewByIdR.id.title_paired_devices.setVisibilityView.VISIBLE for BluetoothDevice device : pairedDevices mPairedDevicesArrayAdapter.adddevice.getName n device.getAddress else String noDevices getResources.getTextR.string.none_paired.toString mPairedDevicesArrayAdapter.addnoDevices Override protected void onDestroy super.onDestroy // Make sure were not doing discovery anymore if mBtAdapter null mBtAdapter.cancelDiscovery // Unregister broadcast listeners this.unregisterReceivermReceiver / Start device discover with the BluetoothAdapter / private void doDiscovery if D Log.dTAG doDiscovery // Indicate scanning in the title setProgressBarIndeterminateVisibilitytrue setTitleR.string.scanning // Turn on sub-title for new devices findViewByIdR.id.title_new_devices.setVisibilityView.VISIBLE // If were already discovering stop it if mBtAdapter.isDiscovering mBtAdapter.cancelDiscovery // Request discover from BluetoothAdapter mBtAdapter.startDiscovery // The on-click listener for all devices in the ListViews private OnItemClickListener mDeviceClickListener new OnItemClickListener public void onItemClickAdapterView av View v int arg2 long arg3 // Cancel discovery because its costly and were about to connect mBtAdapter.cancelDiscovery // Get the device MAC address which is the last 17 chars in the View String info TextView v.getText.toString String address info.substringinfo.length - 17 // Create the result Intent and include the MAC address Intent intent new Intent intent.putExtraEXTRA_DEVICE_ADDRESS address // Set result and finish this Activity setResultActivity.RESULT_OK intent finish // The BroadcastReceiver that listens for discovered devices and // changes the title when discovery is finished private final BroadcastReceiver mReceiver new BroadcastReceiver Override public void onReceiveContext context Intent intent String action intent.getAction // When discovery finds a device if BluetoothDevice.ACTION_FOUND.equalsaction // Get the BluetoothDevice object from the Intent BluetoothDevice device intent.getParcelableExtraBluetoothDevice.EXTRA_DEVICE // If its already paired skip it because its been listed already if device.getBondState BluetoothDevice.BOND_BONDED mNewDevicesArrayAdapter.adddevice.getName n device.getAddress // When discovery is finished change the Activity title else if BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equalsaction setProgressBarIndeterminateVisibilityfalse setTitleR.string.select_device if mNewDevicesArrayAdapter.getCount 0 String noDevices getResources.getTextR.string.none_found.toString mNewDevicesArrayAdapter.addnoDevices