2014-03-03 110 views
0

我是Android新手,我將使用藍牙。 我有下面的代碼,但問題是,當我在手機中運行應用程序時,它不顯示設備列表。其他按鈕打開,關閉,並看到沒有問題的作品。Android藍牙

public class MainActivity extends Activity { 

private Button On,Off,Visible,list; 
    private BluetoothAdapter BA; 
    private Set<BluetoothDevice>pairedDevices; 
    private ListView lv; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

     On = (Button)findViewById(R.id.button1); 
     Off = (Button)findViewById(R.id.button2); 
     Visible = (Button)findViewById(R.id.button3); 
     list = (Button)findViewById(R.id.button4); 

     lv = (ListView)findViewById(R.id.listView1); 

     BA = BluetoothAdapter.getDefaultAdapter(); 
} 


//Button turn on 
public void on(View view){ 
     if (!BA.isEnabled()) { 
     Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
     startActivityForResult(turnOn, 0); 
     Toast.makeText(getApplicationContext(),"Turned on" 
     ,Toast.LENGTH_LONG).show(); 
     } 
     else{ 
     Toast.makeText(getApplicationContext(),"Already on", 
     Toast.LENGTH_LONG).show(); 
     } 
    } 

     //Button list devices 
    public void list(View view){ 
     pairedDevices = BA.getBondedDevices(); 

     ArrayList list = new ArrayList(); 
     for(BluetoothDevice bt : pairedDevices) 
     list.add(bt.getName()); 

     Toast.makeText(getApplicationContext(),"Showing Paired Devices", 
     Toast.LENGTH_SHORT).show(); 
     final ArrayAdapter adapter = new ArrayAdapter 
     (this,android.R.layout.simple_list_item_1, list); 
     lv.setAdapter(adapter); 

    } 

     //Button turn off 
    public void off(View view){ 
     BA.disable(); 
     Toast.makeText(getApplicationContext(),"Turned off" , 
     Toast.LENGTH_LONG).show(); 
    } 

     //Button get visible 
    public void visible(View view){ 
     Intent getVisible = new Intent(BluetoothAdapter. 
     ACTION_REQUEST_DISCOVERABLE); 
     startActivityForResult(getVisible, 0); 

    } 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

}

回答

0

你爲什麼不實行 'onActivityResult' 的方法?如果你的代碼是參考任何教程,請仔細檢查它。 我認爲你錯過了'onActivityResult'方法。

編輯:

嘗試在「的onCreate」方法的末尾添加以下代碼:

@Override 
onCreate(...){ 
    ... 

    ... 
    list.setOnClickListener(new OnClickListener(){ 

     @Override 
     public void onClick(View view){ 
      list(); 
     } 

    }); 

} 

我想你錯過調用每個方法是單擊按鈕時。

+0

我的代碼請參考本教程[http://www.tutorialspoint.com/android/android_bluetooth.htm]我沒有找到方法「onActivityResult'here – nasroazro

1

你有你的清單文件的權限?

<uses-permission android:name="android.permission.BLUETOOTH"/> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 
+0

是的,我有它在我的清單文件 – nasroazro

+0

@ nasroazro因此,試着看看logcat。很難說沒有錯誤或日誌的項目出了什麼問題。 – eleven

+0

藍牙模擬器不工作,所以我爲什麼看着logcat。我在我的android手機(Galaxy SII)上測試了它 – nasroazro