问题描述
我正在使用地图片段显示位置跟踪。在该活动中,我按下一个按钮。我希望当用户单击按钮const Libp2p = require('libp2p')
const MulticastDNS = require('libp2p-mdns')
const KadDHT = require('libp2p-kad-dht')
const Bootstrap = require('libp2p-bootstrap')
const TCP = require('libp2p-tcp')
const Mplex = require('libp2p-mplex')
const { NOISE } = require('libp2p-noise')
const GossipSub = require('libp2p-gossipsub')
const { FaultTolerance } = require('libp2p/src/transport-manager')
const CID = require('cids')
const all = require('it-all')
const delay = require('delay')
const bootstrapers = [
'/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGheyERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ','/ip4/104.236.176.52/tcp/4001/p2p/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z','/ip4/104.236.179.241/tcp/4001/p2p/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM','/ip4/162.243.248.213/tcp/4001/p2p/QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm','/ip4/128.199.219.111/tcp/4001/p2p/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu','/ip4/104.236.76.40/tcp/4001/p2p/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64','/ip4/178.62.158.247/tcp/4001/p2p/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd','/ip4/178.62.61.185/tcp/4001/p2p/QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3','/ip4/104.236.151.122/tcp/4001/p2p/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx'
]
const createNode = () => {
return Libp2p.create({
addresses: {
listen: ['/ip4/0.0.0.0/tcp/0']
},modules: {
transport: [ TCP ],streammuxer: [ Mplex ],connEncryption: [ NOISE ],// peerdiscovery: [ MulticastDNS ],peerdiscovery: [ Bootstrap,MulticastDNS ],dht: KadDHT,pubsub: GossipSub
},transportManager: {
faultTolerance: FaultTolerance.NO_FATAL
},config: {
peerdiscovery: {
autoDial: true,[MulticastDNS.tag]: {
broadcast: true,interval: 1000,enabled: true
},[Bootstrap.tag]: {
interval: 1000,enabled: true,list: bootstrapers
},[GossipSub.tag]: {
enabled: true,emitSelf: true,signMessages: true,strictSigning: true
},mdns: {
broadcast: true,bootstrap: {
interval: 1000,pubsub: {
enabled: true,},dht: {
enabled: true
}
}
})
}
( async () => {
const [node1,node2] = await Promise.all([
createNode(),createNode()
])
node1.on('peer:discovery',(peer) => console.log('discovered:',peer.id.toB58String()))
node2.on('peer:discovery',peer.id.toB58String()))
await Promise.all([
node1.start(),node2.start()
])
// const cid = new CID('QmTp9VkYvnHyrqKQuFPiuZkiX9gPcqj6x5LJ1rmWuSySnL')
// await node1.contentRouting.provide(cid)
// await delay(3000)
// console.log("looking for providers...")
// const providers = await all(node2.contentRouting.findProviders(cid,{ timeout: 5000 }))
// console.log('Found provider:',providers[0].id.toB58String())
})()
时停止并打开新活动。我尝试 onLocationchanged()
停止 removeUpdates(locationListener)
。但是似乎不起作用,因为当我单击该按钮时,整个应用程序都被弯腰并关闭了。
这是我的MapsActivity.java文件:
onLocationchanged()
这是我的activity_map.xml文件:
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.FragmentActivity;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback,LocationListener {
private GoogleMap mMap;
private DatabaseReference reference;
private LocationManager manager;
private LocationListener locationListener;
Marker MyMarker;
Button stop;
private final int MIN_TIME = 1000; // 1 sec
private final int MIN_disTANCE = 1; // 1 meter
private int coOrdinate = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
manager = (LocationManager) getSystemService(LOCATION_SERVICE);
reference = FirebaseDatabase.getInstance().getReference().child("User-101");
//FirebaseDatabase.getInstance().getReference().setValue("This is tracker app");
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
getLocationUpdates();
readChanges();
stop = findViewById(R.id.stop);
stop.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
manager.removeUpdates(locationListener);
Intent intent = new Intent(getApplicationContext(),ShowMap.class);
startActivity(intent);
}
});
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)