对于android–如何检查wifi位置服务是否开启……?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解android判断wifi是否连接,并且为您提供关于AndroidGoogleMap
对于android – 如何检查wifi位置服务是否开启……?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解android 判断wifi是否连接,并且为您提供关于Android Google Map如何检查gps位置是否在圆圈内、android – jodatime如何知道夏令时是否开启、android – Twitter数字:如何检查用户是否已注册、android – 如何在Firebase中检查写入任务是否成功的宝贵知识。
本文目录一览:- android – 如何检查wifi位置服务是否开启……?(android 判断wifi是否连接)
- Android Google Map如何检查gps位置是否在圆圈内
- android – jodatime如何知道夏令时是否开启
- android – Twitter数字:如何检查用户是否已注册
- android – 如何在Firebase中检查写入任务是否成功
android – 如何检查wifi位置服务是否开启……?(android 判断wifi是否连接)
我正在使用一个使用用户位置的应用程序.
我可以成功地询问用户wifi和gps启用.
如您所知,您可以使用WiFi,但不能提供您的位置.
问题是我想要让用户启用wifi位置获取服务,如果它被禁用.我使用wifi管理器用于wifi和LOCATION_PROVIDERS_ALLOWED用于GPS.两者都很好用.
//provider variable code
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
//i use the string into an if statement
if (!provider.contains("gps")){
}
我明白我可以将启用的提供程序转换为用逗号分隔的变量.
它工作得很好..但“gps”是GPS的名称,但是WiFi的名称是什么?
解决方法:
有两个提供商.一个是GPS,另一个叫网络,包括Wifi和手机信号塔.
因此,如果两个提供程序都已启用,则您获得的响应是network,gps
Android Google Map如何检查gps位置是否在圆圈内
public class MapaEscola extends FragmentActivity { private GoogleMap googleMap; private Serializable escolas; private ProgressDialog dialog; private Circle mCircle; private Marker mMarker; @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getActionBar().setdisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); setContentView(R.layout.maps); // Loading map initilizeMap(); // Changing map type googleMap.setMapType(GoogleMap.MAP_TYPE_norMAL); // Showing / hiding your current location googleMap.setMyLocationEnabled(true); // Enable / disable zooming controls googleMap.getUiSettings().setZoomControlsEnabled(true); // Enable / disable my location button googleMap.getUiSettings().setMyLocationButtonEnabled(true); // Enable / disable Compass icon googleMap.getUiSettings().setCompassEnabled(true); // Enable / disable Rotate gesture googleMap.getUiSettings().setRotateGesturesEnabled(true); // Enable / disable zooming functionality googleMap.getUiSettings().setZoomGesturesEnabled(true); Bundle extra = getIntent().getBundleExtra("extra"); ArrayList<Escolas> objects = (ArrayList<Escolas>) extra.getSerializable("array"); try { for(int i = 0; i < objects.size(); i ++) { System.out.println(" escolas " + objects.get(i).getLatitude() + " " + objects.get(i).getLongitude()); float latitude = objects.get(i).getLatitude(); float longitude = objects.get(i).getLongitude(); googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(-23.316281,-51.155528),15)); MarkerOptions options = new MarkerOptions(); // Setting the position of the marker options.position(new LatLng(latitude,longitude)); googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); LatLng latLng = new LatLng(latitude,longitude); drawMarkerWithCircle(latLng); googleMap.setonMyLocationchangelistener(new GoogleMap.OnMyLocationchangelistener() { @Override public void onMyLocationChange(Location location) { float[] distance = new float[2]; Location.distanceBetween( mMarker.getPosition().latitude,mMarker.getPosition().longitude,mCircle.getCenter().latitude,mCircle.getCenter().longitude,distance); if( distance[0] > (mCircle.geTradius() / 2) ){ Toast.makeText(getBaseContext(),"Outside",Toast.LENGTH_LONG).show(); } else { Toast.makeText(getBaseContext(),"Inside",Toast.LENGTH_LONG).show(); } } }); } } catch (Exception e) { e.printstacktrace(); } } private void drawMarkerWithCircle(LatLng position){ double radiusInMeters = 500.0; int strokeColor = 0xffff0000; //red outline int shadeColor = 0x44ff0000; //opaque red fill CircleOptions circleOptions = new CircleOptions().center(position).radius(radiusInMeters).fillColor(shadeColor).strokeColor(strokeColor).strokeWidth(8); mCircle = googleMap.addCircle(circleOptions); MarkerOptions markerOptions = new MarkerOptions().position(position); mMarker = googleMap.addMarker(markerOptions); } private void initilizeMap() { if (googleMap == null) { googleMap = ((MapFragment) getFragmentManager().findFragmentById( R.id.map)).getMap(); // check if map is created successfully or not if (googleMap == null) { Toast.makeText(getApplicationContext(),"Não foi possível carregar o mapa",Toast.LENGTH_SHORT) .show(); } } } @TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override public void onBackpressed() { super.onBackpressed(); finish(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Todo Auto-generated method stub MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_main,menu); return super.onCreateOptionsMenu(menu); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) public boolean onoptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: super.onBackpressed(); finish(); return true; } return true; } @Override protected void onResume() { super.onResume(); initilizeMap(); } }
解决方法
您应该使用传入onMyLocationChange()回调的位置,以便它使用您当前的位置来判断设备是否在圆圈内:
googleMap.setonMyLocationchangelistener(new GoogleMap.OnMyLocationchangelistener() { @Override public void onMyLocationChange(Location location) { float[] distance = new float[2]; /* Location.distanceBetween( mMarker.getPosition().latitude,distance); */ Location.distanceBetween( location.getLatitude(),location.getLongitude(),distance); if( distance[0] > mCircle.geTradius() ){ Toast.makeText(getBaseContext(),"Outside,distance from center: " + distance[0] + " radius: " + mCircle.geTradius(),Toast.LENGTH_LONG).show(); } else { Toast.makeText(getBaseContext(),"Inside,Toast.LENGTH_LONG).show(); } } });
以下是我运行的全部工作示例,它是您的原始代码的缩减版本:
public class MainActivity extends ActionBaractivity { private GoogleMap googleMap; private Serializable escolas; private ProgressDialog dialog; private Circle mCircle; private Marker mMarker; @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().setdisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); setContentView(R.layout.activity_main); // Loading map initilizeMap(); // Changing map type googleMap.setMapType(GoogleMap.MAP_TYPE_norMAL); // Showing / hiding your current location googleMap.setMyLocationEnabled(true); // Enable / disable zooming controls googleMap.getUiSettings().setZoomControlsEnabled(true); // Enable / disable my location button googleMap.getUiSettings().setMyLocationButtonEnabled(true); // Enable / disable Compass icon googleMap.getUiSettings().setCompassEnabled(true); // Enable / disable Rotate gesture googleMap.getUiSettings().setRotateGesturesEnabled(true); // Enable / disable zooming functionality googleMap.getUiSettings().setZoomGesturesEnabled(true); // Bundle extra = getIntent().getBundleExtra("extra"); //ArrayList<Escolas> objects = (ArrayList<Escolas>) extra.getSerializable("array"); try { //test outside double mLatitude = 37.77657; double mLongitude = -122.417506; //test inside //double mLatitude = 37.7795516; //double mLongitude = -122.39292; googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(mLatitude,mLongitude),15)); MarkerOptions options = new MarkerOptions(); // Setting the position of the marker options.position(new LatLng(mLatitude,mLongitude)); //googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); LatLng latLng = new LatLng(mLatitude,mLongitude); drawMarkerWithCircle(latLng); googleMap.setonMyLocationchangelistener(new GoogleMap.OnMyLocationchangelistener() { @Override public void onMyLocationChange(Location location) { float[] distance = new float[2]; /* Location.distanceBetween( mMarker.getPosition().latitude,distance); */ Location.distanceBetween( location.getLatitude(),distance); if( distance[0] > mCircle.geTradius() ){ Toast.makeText(getBaseContext(),Toast.LENGTH_LONG).show(); } } }); } catch (Exception e) { e.printstacktrace(); } } private void drawMarkerWithCircle(LatLng position){ double radiusInMeters = 500.0; int strokeColor = 0xffff0000; //red outline int shadeColor = 0x44ff0000; //opaque red fill CircleOptions circleOptions = new CircleOptions().center(position).radius(radiusInMeters).fillColor(shadeColor).strokeColor(strokeColor).strokeWidth(8); mCircle = googleMap.addCircle(circleOptions); MarkerOptions markerOptions = new MarkerOptions().position(position); mMarker = googleMap.addMarker(markerOptions); } private void initilizeMap() { if (googleMap == null) { googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById( R.id.map)).getMap(); // check if map is created successfully or not if (googleMap == null) { Toast.makeText(getApplicationContext(),menu); return super.onCreateOptionsMenu(menu); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) public boolean onoptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: super.onBackpressed(); finish(); return true; } return true; } @Override protected void onResume() { super.onResume(); initilizeMap(); } }
圈内结果:
圆圈外的结果:
android – jodatime如何知道夏令时是否开启
Date date1 = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(date1); double[] coords = db.getCoords(id1); double latitude = coords[0]; double longitude = coords[1]; double timezone = -7; /* For Pacific daylight time (GMT - 7)*/ ArrayList<String> Times = Class.foo(cal,latitude,longitude,timezone);
我已经安装了JodaTime,甚至在那里我找不到方法.请建议如果本机java或jodatime,或者有办法这样做.
解决方法
// First get a DateTimeZone using the zone name DateTimeZone zone = DateTimeZone.forID("America/Los_Angeles"); // Then get the current time in that zone. DateTime dt = new DateTime(zone); // Or if you prefer to be more explicit,this Syntax is equivalent. DateTime dt = DateTime.Now(zone);
UPDATE
我仍然不确定你在问什么,但也许你正在寻找其中之一:
// To get the current Pacific Time offset DateTimeZone zone = DateTimeZone.forID("America/Los_Angeles"); int currentOffsetMilliseconds = zone.getoffset(Instant.Now()); int currentOffsetHours = currentOffsetMilliseconds / (60 * 60 * 1000); // To just determine if it is currently DST in Pacific Time or not. DateTimeZone zone = DateTimeZone.forID("America/Los_Angeles"); boolean isstandardOffset = zone.isstandardOffset(Instant.Now()); boolean isDaylightOfset = !isstandardOffset;
android – Twitter数字:如何检查用户是否已注册
现在,下次如果我点击启动活动中的相同按钮,它不会显示输入电话号码的选项,只返回已经注册的相同user_id.
我想在我的Java代码中复制同样的东西,而无需额外点击com.digits.sdk.android.DigitsAuthButton按钮.我查看了一些示例,他们使用以下语句来验证相同的内容:
if (Digits.getSessionManager().getActiveSession() != null) { ... }
这是否足够或者我应该使用sharedPreference来存储返回的user_id和电话号码吗?
解决方法
我个人使用共享偏好它对我来说很好..
至于处理“稍后更改电话号码”,您可以创建一个注销按钮,将首选项从true转为false.
要么
你可以查看电话号码的变化:
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE); String mPhoneNumber = tMgr.getLine1Number(); //required Permission: <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
android – 如何在Firebase中检查写入任务是否成功
这将检查是否已采用Username,如果不是,则注册用户:
Query usernamequery = myRef.orderByChild("Username").equalTo(Username); usernamequery.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { if (snapshot.exists()) { // Todo: handle the case where the data already exists editText.setError("Username taken!"); return; } else { // Todo: handle the case where the data does not yet exist myRef.child("Users").child(Username).child("Userid").setValue(user.getUid()); myRef.child("Users").child(Username).child("Username").setValue(Username); startActivity(maps); finish(); } } @Override public void onCancelled(DatabaseError databaseError) { Toast.makeText(Username.this,"Error",Toast.LENGTH_LONG).show(); } });
但我希望只有在激活时才会触发Intent to Main Activity(地图)
.myRef.child( “用户”)孩子(用户名).child( “用户ID”)的setValue(user.getUid()).
另一个完成任务并取得成功.
我能做什么?
解决方法
myRef.child("Users").child(Username).child("Userid").setValue(user.getUid(),new DatabaseReference.CompletionListener() { void onComplete(DatabaseError error,DatabaseReference ref) { System.out.println("Value was set. Error = "+error); } });
如果要通过单个操作写入多个位置,则需要查看update()方法:https://firebase.google.com/docs/database/android/read-and-write#updating_or_deleting_data
这里记录了setValue()的正确重载:https://firebase.google.com/docs/reference/android/com/google/firebase/database/DatabaseReference.html#setValue(java.lang.Object,%20com.google.firebase.database.DatabaseReference.CompletionListener)
今天关于android – 如何检查wifi位置服务是否开启……?和android 判断wifi是否连接的分享就到这里,希望大家有所收获,若想了解更多关于Android Google Map如何检查gps位置是否在圆圈内、android – jodatime如何知道夏令时是否开启、android – Twitter数字:如何检查用户是否已注册、android – 如何在Firebase中检查写入任务是否成功等相关知识,可以在本站进行查询。
本文标签: