Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.98 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="dev.onevc.getaddressgeocode1;">
  4.  
  5. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  6. <uses-permission android:name="android.permission.INTERNET"/>
  7.  
  8. <application
  9. android:allowBackup="true"
  10. android:icon="@mipmap/ic_launcher"
  11. android:label="@string/app_name"
  12. android:supportsRtl="true"
  13. android:theme="@style/AppTheme">
  14. <activity android:name="MainActivity">
  15. <intent-filter>
  16. <action android:name="android.intent.action.MAIN" />
  17.  
  18. <category android:name="android.intent.category.LAUNCHER" />
  19. </intent-filter>
  20. </activity>
  21. </application>
  22.  
  23. </manifest>
  24.  
  25. #############################################################################################################
  26.  
  27. package dev.onevc.getaddressgeocode1;
  28.  
  29. import java.io.BufferedReader;
  30. import java.io.IOException;
  31. import java.io.InputStreamReader;
  32. import java.net.HttpURLConnection;
  33. import java.net.MalformedURLException;
  34. import java.net.ProtocolException;
  35. import java.net.URL;
  36.  
  37. public class HttpDataHandler {
  38.  
  39. public HttpDataHandler() {
  40. }
  41.  
  42. public String GetHTTPData(String requestUrl)
  43. {
  44. URL url;
  45. String respone = "";
  46. try{
  47. url = new URL(requestUrl);
  48. HttpURLConnection conn = (HttpURLConnection)url.openConnection();
  49. conn.setReadTimeout(15000);
  50. conn.setConnectTimeout(15000);
  51. conn.setRequestMethod("GET");
  52. conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
  53. conn.setDoOutput(true);
  54. int responseCode = conn.getResponseCode();
  55.  
  56. if(responseCode == HttpURLConnection.HTTP_OK)
  57. {
  58. String line;
  59. BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  60. while((line = br.readLine()) != null)
  61. respone+=line;
  62. }
  63. else
  64. respone = "";
  65. } catch (ProtocolException e) {
  66. e.printStackTrace();
  67. } catch (MalformedURLException e) {
  68. e.printStackTrace();
  69. } catch (IOException e) {
  70. e.printStackTrace();
  71. }
  72. return respone;
  73. }
  74. }
  75.  
  76. #############################################################################################################
  77.  
  78. package dev.onevc.getaddressgeocode1;
  79.  
  80. import android.Manifest;
  81. import android.app.ProgressDialog;
  82. import android.content.Context;
  83. import android.content.pm.PackageManager;
  84. import android.location.Criteria;
  85. import android.location.Location;
  86. import android.location.LocationListener;
  87. import android.location.LocationManager;
  88. import android.os.AsyncTask;
  89. import android.support.annotation.NonNull;
  90. import android.support.v4.app.ActivityCompat;
  91. import android.support.v7.app.AppCompatActivity;
  92. import android.os.Bundle;
  93. import android.util.Log;
  94. import android.view.View;
  95. import android.widget.Button;
  96. import android.widget.TextView;
  97.  
  98. import org.json.JSONArray;
  99. import org.json.JSONException;
  100. import org.json.JSONObject;
  101. import org.w3c.dom.Text;
  102.  
  103. public class MainActivity extends AppCompatActivity implements LocationListener {
  104.  
  105. Button btnShow;
  106. TextView textView;
  107.  
  108. LocationManager locationManager;
  109. String provider;
  110. final int MY_PERMISSION_REQUEST_CODE = 7171;
  111. double lat, lng;
  112.  
  113.  
  114. @Override
  115. protected void onResume() {
  116. super.onResume();
  117. if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
  118.  
  119. return;
  120. }
  121. locationManager.requestLocationUpdates(provider, 400, 1, this);
  122. }
  123.  
  124. @Override
  125. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  126. switch (requestCode) {
  127. case MY_PERMISSION_REQUEST_CODE:
  128. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
  129. getLocation();
  130. break;
  131.  
  132. }
  133. }
  134.  
  135. @Override
  136. protected void onCreate(Bundle savedInstanceState) {
  137. super.onCreate(savedInstanceState);
  138. setContentView(R.layout.activity_main);
  139.  
  140. btnShow = (Button) findViewById(R.id.btnGetAddress);
  141. textView = (TextView) findViewById(R.id.txtAddress);
  142.  
  143. if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
  144.  
  145. ActivityCompat.requestPermissions(this, new String[]{
  146. Manifest.permission.ACCESS_COARSE_LOCATION,
  147. Manifest.permission.ACCESS_FINE_LOCATION
  148. }, MY_PERMISSION_REQUEST_CODE);
  149.  
  150. } else {
  151. getLocation();
  152. }
  153.  
  154. btnShow.setOnClickListener(new View.OnClickListener() {
  155. @Override
  156. public void onClick(View view) {
  157. if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
  158.  
  159. return;
  160. }
  161. Location myLocation = locationManager.getLastKnownLocation(provider);
  162. lat = myLocation.getLatitude();
  163. lng = myLocation.getLongitude();
  164. new GetAddress().execute(String.format("%.4f,%.4f",lat,lng));
  165. }
  166. });
  167. }
  168.  
  169. private void getLocation() {
  170. locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  171. provider = locationManager.getBestProvider(new Criteria(), false);
  172.  
  173.  
  174. if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
  175.  
  176. return;
  177. }
  178. final Location location = locationManager.getLastKnownLocation(provider);
  179. if(location == null)
  180. Log.e("ERROR","Location is null");
  181. }
  182.  
  183. @Override
  184. public void onLocationChanged(Location location) {
  185. lat = location.getLatitude();
  186. lng = location.getLongitude();
  187.  
  188. new GetAddress().execute(String.format("%.4f,%.4f",lat,lng));
  189. }
  190.  
  191. @Override
  192. public void onStatusChanged(String s, int i, Bundle bundle) {
  193.  
  194. }
  195.  
  196. @Override
  197. public void onProviderEnabled(String s) {
  198.  
  199. }
  200.  
  201. @Override
  202. public void onProviderDisabled(String s) {
  203.  
  204. }
  205.  
  206. private class GetAddress extends AsyncTask<String,Void,String> {
  207.  
  208. ProgressDialog dialog = new ProgressDialog(MainActivity.this);
  209.  
  210. @Override
  211. protected void onPreExecute() {
  212. super.onPreExecute();
  213. dialog.setMessage("Please wait...");
  214. dialog.setCanceledOnTouchOutside(false);
  215. dialog.show();
  216. }
  217.  
  218. @Override
  219. protected String doInBackground(String... strings) {
  220. try{
  221. double lat = Double.parseDouble(strings[0].split(",")[0]);
  222. double lng = Double.parseDouble(strings[0].split(",")[1]);
  223. String response;
  224. HttpDataHandler http = new HttpDataHandler();
  225. String url = String.format("https://maps.googleapis.com/maps/api/geocode/json?latlng=%.4f,%.4f&sensor=false",lat,lng);
  226. response = http.GetHTTPData(url);
  227. return response;
  228. }
  229. catch (Exception ex)
  230. {
  231.  
  232. }
  233. return null;
  234. }
  235.  
  236. @Override
  237. protected void onPostExecute(String s) {
  238. try{
  239. JSONObject jsonObject = new JSONObject(s);
  240.  
  241. String address = ((JSONArray)jsonObject.get("results")).getJSONObject(0).get("formatted_address").toString();
  242. textView.setText(address);
  243.  
  244.  
  245. } catch (JSONException e) {
  246. e.printStackTrace();
  247. }
  248.  
  249. if(dialog.isShowing())
  250. dialog.dismiss();
  251. }
  252. }
  253. }
  254.  
  255. #############################################################################################################
  256.  
  257. <resources>
  258. <!-- Default screen margins, per the Android Design guidelines. -->
  259. <dimen name="activity_horizontal_margin">16dp</dimen>
  260. <dimen name="activity_vertical_margin">16dp</dimen>
  261. </resources>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement