Fix crash whne no google play services available
This commit is contained in:
parent
1080076e3b
commit
7ffba397ce
@ -16,6 +16,8 @@ import io.flutter.plugin.common.MethodChannel;
|
|||||||
|
|
||||||
import com.google.android.gms.tasks.OnCompleteListener;
|
import com.google.android.gms.tasks.OnCompleteListener;
|
||||||
import com.google.android.gms.tasks.Task;
|
import com.google.android.gms.tasks.Task;
|
||||||
|
import com.google.android.gms.common.GoogleApiAvailability;
|
||||||
|
import com.google.android.gms.common.ConnectionResult;
|
||||||
import com.google.firebase.iid.FirebaseInstanceId;
|
import com.google.firebase.iid.FirebaseInstanceId;
|
||||||
import com.google.firebase.iid.InstanceIdResult;
|
import com.google.firebase.iid.InstanceIdResult;
|
||||||
import com.google.firebase.messaging.FirebaseMessaging;
|
import com.google.firebase.messaging.FirebaseMessaging;
|
||||||
@ -31,13 +33,14 @@ public class MainActivity extends FlutterActivity {
|
|||||||
new MethodChannel.MethodCallHandler() {
|
new MethodChannel.MethodCallHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void onMethodCall(MethodCall call, MethodChannel.Result result) {
|
public void onMethodCall(MethodCall call, MethodChannel.Result result) {
|
||||||
|
Context context = getActivity();
|
||||||
if (call.method.equals("getFCMToken")) {
|
if (call.method.equals("getFCMToken")) {
|
||||||
|
if (checkPlayServices()) {
|
||||||
FirebaseInstanceId.getInstance().getInstanceId()
|
FirebaseInstanceId.getInstance().getInstanceId()
|
||||||
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
|
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
|
||||||
@Override
|
@Override
|
||||||
public void onComplete(@NonNull Task<InstanceIdResult> task) {
|
public void onComplete(@NonNull Task<InstanceIdResult> task) {
|
||||||
if (task.isSuccessful()) {
|
if (task.isSuccessful()) {
|
||||||
Context context = getActivity();
|
|
||||||
String token = task.getResult().getToken();
|
String token = task.getResult().getToken();
|
||||||
UpdateTokenTask updateTokenTask = new UpdateTokenTask(context);
|
UpdateTokenTask updateTokenTask = new UpdateTokenTask(context);
|
||||||
updateTokenTask.execute(token);
|
updateTokenTask.execute(token);
|
||||||
@ -47,12 +50,19 @@ public class MainActivity extends FlutterActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
result.error("google_play_service_error", "Google Play Services unavailable", null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean checkPlayServices() {
|
||||||
|
return (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this) == ConnectionResult.SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
Reference in New Issue
Block a user