私は自分の "BeaconManager"を作成して、さまざまなアクションをより簡単に作成しようとしています。Androidビーコン - バインド/アンバインドに関する問題(こちら)
だから私は、新しいクラスを作成しましたし、私は「BeaconConsumer」とその機能を実装しました:だからとして
public class MainActivity extends Activity {
MybeaconManager mybeaconManager;
BeaconManager beaconManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mybeaconManager = new MybeaconManager(this);
if (mybeaconManager.isEnterInArea()){
Log.i("BeaconTest", "I'm detecting a Beacon");
}
}
@Override
protected void onDestroy() {
super.onDestroy();
mybeaconManager.unBindBeacon((BeaconConsumer) this);
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onStop() {
super.onStop();
}
}
:これまで
public class MybeaconManager implements BeaconConsumer{
private BeaconManager beaconManager;
private final String TAG = "MybeaconManager";
private boolean mEnterArea = false;
private boolean mAlreadyArea = false;
public MybeaconManager(Context ctx){
beaconManager = BeaconManager.getInstanceForApplication(ctx);
beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25"));
beaconManager.bind(this);
}
public void bindBeacon(BeaconConsumer consumer){
beaconManager.bind(consumer);
}
public void unBindBeacon(BeaconConsumer consumer){
beaconManager.unbind(consumer);
}
public boolean isEnterInArea() {
return mEnterArea;
}
public boolean isAlreadyInArea() {
return mAlreadyArea;
}
public void sendNotification(String Notif) {
}
@Override
public void onBeaconServiceConnect() {
beaconManager.addMonitorNotifier(new MonitorNotifier() {
@Override
public void didEnterRegion(Region region) {
mEnterArea = true;
}
@Override
public void didExitRegion(Region region) {
mEnterArea = false;
}
@Override
public void didDetermineStateForRegion(int i, Region region) {
}
});
}
次へ]を、私は私のMainActivityを持っています私がMainActivityコード内で使用しなければならない方法で、より簡単にdidEnterRegion/didExitRegion関数を使用しようとしています。
バインド/アンバインド(これ)はうまくコンパイルできません。消費者の権利を得ることができないため、MainActivityに "BeaconConsumer"を実装していないためです。
「原因:java.lang.NullPointerException:nullオブジェクト参照で仮想メソッド 'java.lang.String android.content.Context.getPackageName()'を呼び出そうとしました。バインドするもの。
私のビーコンマネージャーを維持する方法でこれに対処する方法はありますか?
ありがとうございます。 PS:英語が完璧でない場合は申し訳ありません