質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

1回答

640閲覧

androidstudioで登録地点に近づくとプッシュ通知が出るアプリを作りたいと思っています。

candy_

総合スコア11

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/06/13 02:31

編集2022/01/12 10:55

前提・実現したいこと

android studioで登録地点に近づくとプッシュ通知で
お知らせされるアプリを作りたいと思っています。
(例 事故が多い交差点に差し掛かると通知が来るようなもの)
最近android studioをインストールしたばかりの初心者の為、本を片手に動かしている状態です。

試したこと

以下のサイトを参考にしたのですが、バージョンが違うのかエラーが多発してしまいました。
https://dev.classmethod.jp/smartphone/android/android-google-play-services-location-api-geofencing/

補足情報(FW/ツールのバージョンなど)

android studio 3.1.3 for Windows 64-bit

前提・実現したいこと

android studioで登録地点に近づくとプッシュ通知で
お知らせされるアプリを作りたいと思っています。
(例 事故が多い交差点に差し掛かると通知が来るようなもの)
最近android studioをインストールしたばかりの初心者の為、本を片手に動かしている状態です。

発生している問題・エラーメッセージ

Error:(11, 37) エラー: パッケージcom.google.android.gms.commonは存在しません Error:(13, 39) エラー: パッケージcom.google.android.gms.locationは存在しません Error:(23, 13) エラー: シンボルを見つけられません シンボル: クラス LocationClient 場所: クラス MainActivity Error:(70, 37) エラー: パッケージGooglePlayServicesClientは存在しません

試したこと

package com.example.shi.geofencing; import android.app.PendingIntent; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.widget.Toast; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesClient; import com.google.android.gms.location.Geofence; import com.google.android.gms.location.LocationClient; import java.util.ArrayList; public class MainActivity extends FragmentActivity { private final MainActivity self = this; private LocationClient mLocationClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // LocationClient の生成 mLocationClient = new LocationClient(this, mConnectionCallbacks, mOnConnectionFailedListener); mLocationClient.connect(); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); int transitionType = LocationClient.getGeofenceTransition(intent); int color = transitionType == Geofence.GEOFENCE_TRANSITION_ENTER ? Color.GREEN : Color.RED; findViewById(android.R.id.content).setBackgroundColor(color); } private void addGeofence() { // Geofence の作成 // 緯度 double latitude = 35.697239; // 経度 double longitude = 139.774719; // 半径(メートル) float radius = 100; Geofence.Builder builder = new Geofence.Builder(); builder.setRequestId("classmethod_fence"); builder.setCircularRegion(latitude, longitude, radius); builder.setExpirationDuration(Geofence.NEVER_EXPIRE); builder.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER | Geofence.GEOFENCE_TRANSITION_EXIT); ArrayList<Geofence> geofences = new ArrayList<Geofence>(); geofences.add(builder.build()); // PendingIntent の生成 Intent intent = new Intent(self, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); // Geofences の登録 mLocationClient.addGeofences(geofences, pendingIntent, mOnAddGeofencesResultListener); } /** * 接続時・切断時のコールバック. */ private GooglePlayServicesClient.ConnectionCallbacks mConnectionCallbacks = new GooglePlayServicesClient.ConnectionCallbacks() { @Override public void onConnected(Bundle bundle) { Toast.makeText(self, "onConnected", Toast.LENGTH_LONG).show(); // Geofenceを登録 addGeofence(); } @Override public void onDisconnected() { Toast.makeText(self, "onDisconnected", Toast.LENGTH_LONG).show(); } }; /** * 接続失敗時のコールバック. */ private GooglePlayServicesClient.OnConnectionFailedListener mOnConnectionFailedListener = new GooglePlayServicesClient.OnConnectionFailedListener() { @Override public void onConnectionFailed(ConnectionResult connectionResult) { Toast.makeText(self, "onConnectionFailed", Toast.LENGTH_LONG).show(); } }; /** * Geofenceを登録したときのコールバック. */ private LocationClient.OnAddGeofencesResultListener mOnAddGeofencesResultListener = new LocationClient.OnAddGeofencesResultListener() { @Override public void onAddGeofencesResult(int i, String[] strings) { Toast.makeText(self, "onAddGeofencesResult", Toast.LENGTH_LONG).show(); } }; }

補足情報(FW/ツールのバージョンなど)

android studio 3.1.3 for Windows 64-bit

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakajika

2018/06/15 05:39

エラーの内容を書かないと回答はつきにくいと思います。また、コードは直接貼ると読みづらいので```で囲ってください。
candy_

2018/06/16 03:56

ご指摘ありがとうございます。
guest

回答1

0

こちらの質問ですが、まず
GooglePlayServicesClient これは現在は利用できません。

GooglePlayServiceのGeofenceの機能を使う場合、
現在(v15.0.1)は GeofencingClient を使います。

gradle

1// build.gradle 2dependencies { 3 implementation "com.google.android.gms:play-services-location:15.0.1" 4}

java

1GeofencingClient geofencingClient = LocationServices.getGeofencingClient(this); <- 引数はContext or Activity 2geofencingClient.addGeofences(GeofencingRequest, PendingIntent);

これだけで動くと思います。
従来のように、ConnectionCallback を受け取らなくても動くので楽になりました。

投稿2018/06/20 09:48

編集2018/06/20 09:58
atm3

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問