2011-09-01 45 views
1

我目前正在學習如何編寫Android程序。我剛讀完「Android開發人員的食譜用Android SDK構建應用程序」一書。我試圖寫下面的代碼:語法錯誤,插入「}」完成ClassBody

Package src.com.cookbook.BlueToothSample; 

    import android.app.Activity; 
    import android.bluetooth.BluetoothAdapter; 
    import android.bluetooth.BluetoothDevice; 
    import android.content.BroadcastReceiver; 
    import android.content.Intent; 
    import android.content.IntentFilter; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Button; 

    public class BlueToothExampleActivity extends Activity 
    { 
     /** Called when the activity is first created. */ 
     @Override 

     public void onCreate(Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 

      // button 
      Button startBTButton = (Button) findViewById (R.id.Start_BT); 
      startBTButton.setOnClickListener(new View.OnClickListener() 
      { 



       @Override 
      public void onClick(View v) 
      { 
        // TODO Auto-generated method stub 
       startBlueTooth();    
       } 

      }); 

     } 

     private void startBlueTooth() 
     { 
      Intent enableIntent = new Intent(BluetoothAdapter 
      .ACTION_REQUEST_ENABLE); 
     } 

     private final BroadcastReceiver mReceiver = new BroadcastReceiver() 
     { 
      public void onReceive(Context context, Intent intent) 
       { 
      String acton = 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); 
       Log.v("BlueTooth Testing", device.getName() + '\n' 
         + device.getAddress()); 
      } 


      } 


     }; 

     // Register the BroadcastReceiver 
     IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); 
     registerReceiver(mReceiver, filter); 
     myBluetooth.startDiscover(); 

    } 

我收到以下錯誤:語法錯誤,插入「}」以完成ClassBody。 我以爲我把所有的支架排隊。在閱讀本論壇後,我將購買「專業Android應用程序開發人員」一書。任何幫助將不勝感激。

+1

我不確定這是錯誤消息的原因,但代碼中的第一個單詞應該是'package',而不是'Package'。 –

回答

1

此代碼:

你不能做到這一點

 registerReceiver(mReceiver, filter); 
    myBluetooth.startDiscover(); 

,必須出現一個構造函數或方法中。匆匆一瞥,我看到的只是錯誤的,但沒有任何承諾,沒有什麼更多。

編輯:

的方法可能是,這裏是有道理其實,我的壞的唯一的事情。

編輯:

另外在評論中提到的包東西......好抓@Ted

0

您的java語法無效。在類

private final BroadcastReceiver mReceiver = new BroadcastReceiver() 
{ 
// Code here 
} 

這也直接

// Register the BroadcastReceiver 
    IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); 
    registerReceiver(mReceiver, filter); 
    myBluetooth.startDiscover(); 
+2

除了需要終止';'(哪個OP的代碼有)之外,爲什麼不能以這種方式分配給mReceiver呢? –

0

你在錯誤的地方註冊broadcastereceiver所以說到地方

// Register the BroadcastReceiver 
    IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); 
    registerReceiver(mReceiver, filter); 
    myBluetooth.startDiscover(); 

在OnCreate中()

相關問題