2013-05-24 1 views
0

저는 블루투스를 사용하는 앱을 작성하고 있습니다. 이 클래스를 사용하고 싶지만 오류는 registerreceiver()와 함께 줄에 표시됩니다. 이 방법을 어떻게 사용해야합니까?registerReceiver 메서드를 사용하면 오류가 나타나는 이유는 무엇입니까?

import android.app.Activity; 
import android.app.Service; 
import android.bluetooth.BluetoothAdapter; 
import android.bluetooth.BluetoothDevice; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 

public class DiscoveryActivity extends Activity { 

    IntentFilter discoveryFilter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); 
    context.registerReceiver(_dicoveryReceiver, discoveryFilter); 
    IntentFilter foundFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND); 
    context.registerReceiver(_foundReceiver, foundFilter); 

    private BroadcastReceiver _foundReceiver = new BroadcastReceiver(){ 
    public void onReceive(Context context, Intent intent){ 
     //keresés eredménye 
     BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
     //eredmény listába tétele 
     _device.add(device); 
     //lista megjelenítése 
     showDevices(); 
    } 
    }; 

    private BroadcastReceiver _dicoveryReceiver = new BroadcastReceiver(){ 

     public void onReceive(Context context, Intent intent){ 
      unregisterReceiver(_foundReceiver); 
      unregisterReceiver(this); 
      _discoveryFinished = true; 
     } 
    }; 
} 

답변

0

값이없는 context에서 메소드를 실행하려고합니다.

  1. 이 Context 객체 포인터로 활동 객체에 대한 포인터를 할당합니다

    당신은 이것을 달성하는 방법은 두 가지가 있습니다. 같은 뭔가 : 다음

    public ConstructorX(Context context) 
    { 
        this.context = context; 
    } 
    

    그리고 ...

    new ConstructorX(this); 
    
  2. 활동 클래스는 응용 프로그램에 포함 된 Context 개체에 대한 포인터를 검색하는 getApplicationContext() 방법을 가지고 있습니다.

+0

이 코드는 그 라인은 다음과 같이해야한다고 말했습니다 튜토리얼을 기반으로합니다 : 로 IntentFilter discoveryFilter = 새로 IntentFilter (BluetoothAdapter.ACTION_DISCOVERY_FINISHED); registerReceiver (_dicoveryReceiver, discoveryFilter); IntentFilter foundFilter = 새로운 IntentFilter (BluetoothDevice.ACTION_FOUND); registerReceiver (_foundReceiver, foundFilter); 아이디어를 사용해야합니까, 아니면 상황을 바꿀 수 있습니까? – erbal

+0

은 튜토리얼에서 언제든지 어떤 값 으로든 문맥이 주어 집니까? 그렇다면 복사 해보십시오. –

+0

무엇이 오류입니까? NullPointer? –

관련 문제