tech city. يتم التشغيل بواسطة Blogger.

الأربعاء، 16 فبراير 2022

 get fragment context

just get activity

الأربعاء، 22 ديسمبر 2021

Get Current Location in Android

 First you must take care of premissions  so , you should add this premissions to your mainfist file 

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Then in your gradle file add Google Location debendency 


implementation 'com.google.android.gms:play-services-location:18.0.0'


So , now we can create our location request field 

private LocationRequest locationRequest;
package com.example.e_exams;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.location.Address;
import android.location.Geocoder;
import android.location.LocationManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Looper;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.google.android.gms.common.api.ApiException;
import com.google.android.gms.common.api.ResolvableApiException;
import com.google.android.gms.location.LocationCallback;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationResult;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.location.LocationSettingsRequest;
import com.google.android.gms.location.LocationSettingsResponse;
import com.google.android.gms.location.LocationSettingsStatusCodes;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;

import java.io.IOException;
import java.util.List;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {
Button checkin;
private LocationRequest locationRequest;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


checkin = findViewById(R.id.checkin);

locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(5000);
locationRequest.setFastestInterval(2000);

checkin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

getCurrentLocation();
}
});


}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);

if (requestCode == 1){
if (grantResults[0] == PackageManager.PERMISSION_GRANTED){

if (isGPSEnabled()) {

getCurrentLocation();

}else {

turnOnGPS();
}
}
}


}

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (requestCode == 2) {
if (resultCode == Activity.RESULT_OK) {

getCurrentLocation();
}
}
}

private void getCurrentLocation() {


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {

if (isGPSEnabled()) {

LocationServices.getFusedLocationProviderClient(MainActivity.this)
.requestLocationUpdates(locationRequest, new LocationCallback() {
@Override
public void onLocationResult(@NonNull LocationResult locationResult) {
super.onLocationResult(locationResult);

LocationServices.getFusedLocationProviderClient(MainActivity.this)
.removeLocationUpdates(this);

if (locationResult != null && locationResult.getLocations().size() >0){

int index = locationResult.getLocations().size() - 1;
double latitude = locationResult.getLocations().get(index).getLatitude();
double longitude = locationResult.getLocations().get(index).getLongitude();
System.out.println("Latitude: "+ latitude + "\n" + "Longitude: "+ longitude);
Geocoder geocoder = new Geocoder(MainActivity.this, Locale.getDefault());
List<Address> addereses = null;
try {
addereses = geocoder.getFromLocation(latitude,longitude,1);
} catch (IOException e) {
e.printStackTrace();
}
String address =addereses.get(0).getAddressLine(0);
System.out.println(address);
}
}
}, Looper.getMainLooper());

} else {
turnOnGPS();
}

} else {
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
}
}
}

private void turnOnGPS() {



LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
.addLocationRequest(locationRequest);
builder.setAlwaysShow(true);

Task<LocationSettingsResponse> result = LocationServices.getSettingsClient(getApplicationContext())
.checkLocationSettings(builder.build());

result.addOnCompleteListener(new OnCompleteListener<LocationSettingsResponse>() {
@Override
public void onComplete(@NonNull Task<LocationSettingsResponse> task) {

try {
LocationSettingsResponse response = task.getResult(ApiException.class);
Toast.makeText(MainActivity.this, "GPS is already tured on", Toast.LENGTH_SHORT).show();

} catch (ApiException e) {

switch (e.getStatusCode()) {
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:

try {
ResolvableApiException resolvableApiException = (ResolvableApiException) e;
resolvableApiException.startResolutionForResult(MainActivity.this, 2);
} catch (IntentSender.SendIntentException ex) {
ex.printStackTrace();
}
break;

case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
//Device does not have location
break;
}
}
}
});

}

private boolean isGPSEnabled() {
LocationManager locationManager = null;
boolean isEnabled = false;

if (locationManager == null) {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
}

isEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
return isEnabled;

}


}

الثلاثاء، 7 ديسمبر 2021

عمل انتيجيريشن مع باي موب - Paymob integration for mobile

 https://docs.paymob.com/docs/accept-standard-redirect#3-payment-key-request 

رابط الديكومنتيشن

https://accept.paymob.com/portal/index 

البورتال ممكن تاخد من هناك فريم وتريح دماغك

https://www.youtube.com/watch?v=l8pCgYt1h4A 

فيديو بيشرح الموضوع دا


جميع الحقوق محفوظة © 2013 Tech City
تصميم : MARK SAIF (Tech City)