Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bluetooth android

    20 mai 2013 à 12:00:46

    Bonjour,

    Je dois développer un application android pour mon bac, mais la recherche de périphérique bluetooth de ne fonctionne pas, j'ai mon code avec aucune erreur, pourtant quand je lance, l'application force la fermeture :/

    Voici mon code :

    package fr.main.spyfly;
    
    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.View.OnClickListener;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.ToggleButton;
    
    public class DevActivity extends Activity{
    	
    	BluetoothAdapter mBtAdapter = BluetoothAdapter.getDefaultAdapter();
    
        // 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 ArrayAdapter<String> mPairedDevicesArrayAdapter;
        private ArrayAdapter<String> mNewDevicesArrayAdapter;    
    	
    	public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_dev);
         
            final ToggleButton btOn = (ToggleButton) findViewById(R.id.toggleButton1);
            btOn.setOnClickListener(new View.OnClickListener() {
    		   
            	
    			@Override
    			public void onClick(View v) {
    				
    				if(btOn.isChecked()){
    					mBtAdapter.enable();
    				}else{
    					mBtAdapter.disable();
    				}
    				
    			}
    		});
            
         // Initialize the button to perform device discovery
            Button scanButton = (Button) findViewById(R.id.button_scan);
            scanButton.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    doDiscovery();
                    v.setVisibility(View.GONE);
                }
            });
    
            // Initialize array adapters. One for already paired devices and
            // one for newly discovered devices
            mPairedDevicesArrayAdapter = new ArrayAdapter<String>(this, R.layout.activity_dev);
            mNewDevicesArrayAdapter = new ArrayAdapter<String>(this, R.layout.activity_dev);
    
            // Find and set up the ListView for paired devices
            ListView pairedListView = (ListView) findViewById(R.id.paired_devices);
            pairedListView.setAdapter(mPairedDevicesArrayAdapter);
            pairedListView.setOnItemClickListener(mDeviceClickListener);
    
            // Find and set up the ListView for newly discovered devices
            ListView newDevicesListView = (ListView) findViewById(R.id.new_devices);
            newDevicesListView.setAdapter(mNewDevicesArrayAdapter);
            newDevicesListView.setOnItemClickListener(mDeviceClickListener);
    
            // Register for broadcasts when a device is discovered
            IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
            this.registerReceiver(mReceiver, filter);
    
            // Register for broadcasts when discovery has finished
            filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
            this.registerReceiver(mReceiver, filter);
    
            // Get the local Bluetooth adapter
            mBtAdapter = BluetoothAdapter.getDefaultAdapter();
    
            // Get a set of currently paired devices
            Set<BluetoothDevice> pairedDevices = mBtAdapter.getBondedDevices();
    
            // If there are paired devices, add each one to the ArrayAdapter
            if (pairedDevices.size() > 0) {
                findViewById(R.id.title_paired_devices).setVisibility(View.VISIBLE);
                for (BluetoothDevice device : pairedDevices) {
                    mPairedDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress());
                }
            } else {
                String noDevices = getResources().getText(R.string.none_paired).toString();
                mPairedDevicesArrayAdapter.add(noDevices);
            }
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
    
            // Make sure we're not doing discovery anymore
            if (mBtAdapter != null) {
                mBtAdapter.cancelDiscovery();
            }
    
            // Unregister broadcast listeners
            this.unregisterReceiver(mReceiver);
        }
    
        /**
         * Start device discover with the BluetoothAdapter
         */
        private void doDiscovery() {
            if (D) Log.d(TAG, "doDiscovery()");
    
            // Indicate scanning in the title
            setProgressBarIndeterminateVisibility(true);
            setTitle(R.string.scanning);
    
            // Turn on sub-title for new devices
            findViewById(R.id.title_new_devices).setVisibility(View.VISIBLE);
    
            // If we're 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 onItemClick(AdapterView<?> av, View v, int arg2, long arg3) {
                // Cancel discovery because it's costly and we're 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.substring(info.length() - 17);
    
                // Create the result Intent and include the MAC address
                Intent intent = new Intent();
                intent.putExtra(EXTRA_DEVICE_ADDRESS, address);
    
                // Set result and finish this Activity
                setResult(Activity.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 onReceive(Context context, Intent intent) {
                String action = intent.getAction();
    
                // When discovery finds a device
                if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                    // Get the BluetoothDevice object from the Intent
                    BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                    // If it's already paired, skip it, because it's been listed already
                    if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
                        mNewDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress());
                    }
                // When discovery is finished, change the Activity title
                } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
                    setProgressBarIndeterminateVisibility(false);
                    setTitle(R.string.select_device);
                    if (mNewDevicesArrayAdapter.getCount() == 0) {
                        String noDevices = getResources().getText(R.string.none_found).toString();
                        mNewDevicesArrayAdapter.add(noDevices);
                    }
                }
            }
        };
    
    }
    

    Merci d'avance, si vous ne trouvez pas, pouvez vous m'indiquer comment  utiliser le bluetooth avec android Merci !!!

    • Partager sur Facebook
    • Partager sur Twitter
      20 mai 2013 à 12:41:11

      Bonjour,

      Les erreurs ne s'affichent pas dans la Console mais dans le LogCat. Va voir ce qui s'affiche pour pouvoir debugger ton application.

      • Partager sur Facebook
      • Partager sur Twitter
      Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
        20 mai 2013 à 13:21:19

        05-20 13:20:17.291: E/(23282): file /data/data/com.nvidia.NvCPLSvc/files/driverlist.txt: not found!
        05-20 13:20:17.291: I/(23282): Attempting to load EGL implementation /system/lib//egl/libEGL_tegra_impl
        05-20 13:20:17.371: I/(23282): Loaded EGL implementation /system/lib//egl/libEGL_tegra_impl
        05-20 13:20:17.501: I/(23282): Loading GLESv2 implementation /system/lib//egl/libGLESv2_tegra_impl
        05-20 13:20:21.006: E/ArrayAdapter(23282): You must supply a resource ID for a TextView
        05-20 13:20:21.006: W/dalvikvm(23282): threadid=1: thread exiting with uncaught exception (group=0x4160d2d0)
        05-20 13:20:21.026: E/AndroidRuntime(23282): FATAL EXCEPTION: main
        05-20 13:20:21.026: E/AndroidRuntime(23282): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:386)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.AbsListView.obtainView(AbsListView.java:2350)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.ListView.measureHeightOfChildren(ListView.java:1409)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.ListView.onMeasure(ListView.java:1273)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.View.measure(View.java:15279)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4832)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.View.measure(View.java:15279)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4832)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.View.measure(View.java:15279)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.LinearLayout.measureVertical(LinearLayout.java:833)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.View.measure(View.java:15279)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4832)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2271)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.View.measure(View.java:15279)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2091)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1253)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1483)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1151)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4661)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.Choreographer.doCallbacks(Choreographer.java:555)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.Choreographer.doFrame(Choreographer.java:525)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.os.Handler.handleCallback(Handler.java:615)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.os.Handler.dispatchMessage(Handler.java:92)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.os.Looper.loop(Looper.java:155)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.app.ActivityThread.main(ActivityThread.java:5493)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at java.lang.reflect.Method.invokeNative(Native Method)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at java.lang.reflect.Method.invoke(Method.java:511)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)
        05-20 13:20:21.026: E/AndroidRuntime(23282):at dalvik.system.NativeStart.main(Native Method)
        05-20 13:20:21.026: E/AndroidRuntime(23282): Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
        05-20 13:20:21.026: E/AndroidRuntime(23282):at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:379)
        05-20 13:20:21.026: E/AndroidRuntime(23282):... 38 more
        05-20 13:20:22.246: D/Process(23282): killProcess, pid=23282
        05-20 13:20:22.281: D/Process(23282): dalvik.system.VMStack.getThreadStackTrace(Native Method)
        05-20 13:20:22.281: D/Process(23282): java.lang.Thread.getStackTrace(Thread.java:599)
        05-20 13:20:22.286: D/Process(23282): android.os.Process.killProcess(Process.java:944)
        05-20 13:20:22.286: D/Process(23282): com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:108)
        05-20 13:20:22.286: D/Process(23282): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
        05-20 13:20:22.291: D/Process(23282): java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
        05-20 13:20:22.291: D/Process(23282): dalvik.system.NativeStart.main(Native Method)
        Pour être franc, je n'ai rien compris à tous ça...
        • Partager sur Facebook
        • Partager sur Twitter
          24 mai 2013 à 16:40:16

          Un petit peu d'aide ?? :3
          • Partager sur Facebook
          • Partager sur Twitter
            29 mai 2013 à 18:29:23

            Merci beaucoup, tu m'avances énormément :)
            • Partager sur Facebook
            • Partager sur Twitter

            Bluetooth android

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown