{"id":662,"date":"2016-12-23T09:45:52","date_gmt":"2016-12-23T00:45:52","guid":{"rendered":"http:\/\/blue-bear.jp\/kb\/?p=662"},"modified":"2016-12-23T09:45:52","modified_gmt":"2016-12-23T00:45:52","slug":"android-%e4%bd%8d%e7%bd%ae%e6%83%85%e5%a0%b1%e3%82%92%e3%83%90%e3%83%83%e3%82%af%e3%82%b0%e3%83%a9%e3%82%a6%e3%83%b3%e3%83%89%e3%81%a7%e5%8f%96%e5%be%97%e3%80%81db%e3%81%ab%e8%bf%bd%e5%8a%a0","status":"publish","type":"post","link":"https:\/\/blue-bear.jp\/kb\/android-%e4%bd%8d%e7%bd%ae%e6%83%85%e5%a0%b1%e3%82%92%e3%83%90%e3%83%83%e3%82%af%e3%82%b0%e3%83%a9%e3%82%a6%e3%83%b3%e3%83%89%e3%81%a7%e5%8f%96%e5%be%97%e3%80%81db%e3%81%ab%e8%bf%bd%e5%8a%a0\/","title":{"rendered":"[android] \u4f4d\u7f6e\u60c5\u5831\u3092\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u3067\u53d6\u5f97\u3001DB\u306b\u8ffd\u52a0"},"content":{"rendered":"<h2>\u4f4d\u7f6e\u60c5\u5831\u3092\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u3067\u53d6\u5f97\u3001DB\u306b\u8ffd\u52a0<\/h2>\n<p>\u4f4d\u7f6e\u60c5\u5831\u3092\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u3067\u53d6\u5f97\u3059\u308b\u306b\u306fservice\u3092\u7acb\u3061\u4e0a\u3052\u3066\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u3067\u90fd\u5ea6\u4f4d\u7f6e\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b<\/p>\n<h3>Manifest.xml<\/h3>\n<pre>\r\n<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" \/>\r\n<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" \/>\r\n<\/pre>\n<h3>LocationReceiver.java<\/h3>\n<pre>\r\npublic class LocationReceiver extends BroadcastReceiver {\r\n    @Override\r\n    public void onReceive(Context context, Intent intent){\r\n        String locationKey = LocationManager.KEY_LOCATION_CHANGED;\r\n        String providerEnableKey = LocationManager.KEY_PROVIDER_ENABLED;\r\n\r\n        if(intent.hasExtra(providerEnableKey)){\r\n            if(!intent.getBooleanExtra(providerEnableKey, true)){\r\n                Toast.makeText(context, \"provider disabled\",\r\n                        Toast.LENGTH_SHORT).show();\r\n            }else{\r\n                Toast.makeText(context, \"provider enabled\",\r\n                        Toast.LENGTH_SHORT).show();\r\n            }\r\n        }\r\n\r\n        if(intent.hasExtra(locationKey)){\r\n            Location loc = (Location)intent.getExtras().get(locationKey);\r\n            Toast.makeText(context, \"Location changed : Lat: \" +\r\n                    loc.getLatitude() + \"Lng: \" + loc.getLongitude(),\r\n                    Toast.LENGTH_SHORT).show();\r\n\r\n            DBAdapter db = new DBAdapter(context);\r\n            db.open();\r\n            db.insertLocation(String.valueOf(loc.getLatitude()),\r\n                    String.valueOf(loc.getLongitude()));\r\n            db.close();\r\n        }\r\n    }\r\n\r\n}\r\n<\/pre>\n<p>*SQLite\u306e\u5b9f\u88c5\u65b9\u6cd5\u306f<br \/>\n<a href=\"http:\/\/blue-bear.jp\/kb\/android-sqlite%E3%82%92%E5%AE%9F%E8%A3%85%EF%BC%88db-browser-for-sqlite%E3%81%A7db%E3%82%92%E4%BD%9C%E6%88%90%EF%BC%89\/\">[android] SQLite\u3092\u5b9f\u88c5\uff08DB Browser for SQLite\u3067DB\u3092\u4f5c\u6210\uff09<\/a><br \/>\n\u3092\u53c2\u7167<\/p>\n<h3>LocationService.java<\/h3>\n<p>\uff11\uff10\u79d2\u305f\u3063\u305f\u6642\u306b\uff11\uff10\uff4d\u4ee5\u4e0a\u52d5\u3044\u3066\u3044\u305f\u5834\u5408\u306b\u4f4d\u7f6e\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b<\/p>\n<pre>\r\npublic class LocationService extends Service\r\n{\r\n    private static final String TAG = \"LocationService\";\r\n    private LocationManager mLocationManager = null;\r\n    private static final int LOCATION_INTERVAL = 10000; \/\/10\u79d2\r\n    private static final float LOCATION_DISTANCE = 10f; \/\/10m\r\n    PendingIntent pendingIntent;\r\n\r\n    @Override\r\n    public IBinder onBind(Intent arg0){\r\n        return null;\r\n    }\r\n\r\n    @Override\r\n    public int onStartCommand(Intent intent, int flags, int startId){\r\n        Toast.makeText(this, \"Service Started\", Toast.LENGTH_LONG).show();\r\n\r\n        \/\/---use the LocationManager class to obtain locations data---\r\n        mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);\r\n        Intent i = new Intent(this, LocationReceiver.class);\r\n        pendingIntent = PendingIntent.getBroadcast(\r\n                this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);\r\n\r\n        \/\/---request for location updates using GPS---\r\n        try {\r\n            mLocationManager.requestLocationUpdates(\r\n                    LocationManager.GPS_PROVIDER, LOCATION_INTERVAL, LOCATION_DISTANCE,\r\n                    pendingIntent);\r\n        } catch (SecurityException ex) {\r\n            Log.i(TAG, \"fail to request location update, ignore\", ex);\r\n        } catch (IllegalArgumentException ex) {\r\n            Log.d(TAG, \"gps provider does not exist \" + ex.getMessage());\r\n        }\r\n        return START_STICKY;\r\n    }\r\n\r\n    @Override\r\n    public void onDestroy(){\r\n        \/\/---remove the pending intent---\r\n        mLocationManager.removeUpdates(pendingIntent);\r\n\r\n        super.onDestroy();\r\n        Toast.makeText(this, \"Service Destroyed\", Toast.LENGTH_LONG).show();\r\n    }\r\n}\r\n<\/pre>\n<h3>MainActivity.java<\/h3>\n<pre>\r\nIntent intent = new Intent(this, LocationService.class);\r\nstartService(intent);\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4f4d\u7f6e\u60c5\u5831\u3092\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u3067\u53d6\u5f97\u3001DB\u306b<\/p>\n","protected":false},"author":1,"featured_media":383,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[21],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/posts\/662"}],"collection":[{"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/comments?post=662"}],"version-history":[{"count":1,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/posts\/662\/revisions"}],"predecessor-version":[{"id":663,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/posts\/662\/revisions\/663"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/media\/383"}],"wp:attachment":[{"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/media?parent=662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/categories?post=662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blue-bear.jp\/kb\/wp-json\/wp\/v2\/tags?post=662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}