Hi Friends, I will show you how to use Google Forms as Back-End. For On-line application we have a separate table for feedback from users. But, In off-line applications like Music player we will not connect any databases.
To get real-time feedback we can go for Firebase.
But, Firebase has some CONS:
1.Data stored in JSON like Format.
2.Free account of Firebase has Limitation and for Unlimited Access we have to pay some amount per month.
To avoid these CONS, we can connect Google Forms as Back-end
PROS of using this method:
1.It provides real time user-friendly response
2.Cost Free
3.Easy to Integrate
CREATE A GOOGLE FORM
First thing you need to do is login to drive.google.com and create a new “Google Form”. After Creating your Google Form, get your share link from Forms. Your link looks like belowhttps://docs.google.com/forms/d/e/1FAIpQLScIpmqndQeQG3lFbj0QkQ1Kt6tEXoPrOt314AZGQ2WKuK8IvA/viewform
Thus, our POST URL becomes
https://docs.google.com/forms/d/e/1FAIpQLScIpmqndQeQG3lFbj0QkQ1Kt6tEXoPrOt314AZGQ2WKuK8IvA/formResponse
The tricky part of using Google Forms to post data for these fields via code, we need to make a POST request with the data attached as key-value pair. Values being the data entered by your user in the app and the keys being the ids of input fields on the form.To get the keys, right click on each TextBox and select “Inspect Element”. Take Fields name from form and which looks like entry.737865382.
CODING PART
In this, you have create your android project and Import any HTTP Library. In my sample, I used VOLLEY as my HTTP Library.
AndroidManifest.xml
Add INTERNET Permission in AndroidManifest file in your project.
Internet Permission
<uses-permission android:name="android.permission.INTERNET" />
LayoutCreate your Layout file named as activity_main.xml and paste the following code.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.androidmads.postdatatogoogledocs.MainActivity"
tools:showIn="@layout/activity_main">
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edtName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Name"
android:inputType="textPersonName" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edtPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Phone Number"
android:inputType="phone"
android:maxLength="10" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
Function to post Data:Following function is used to post data to Google Form
public void postData(final String name, final String phone) {
progressDialog.show();
StringRequest request = new StringRequest(
Request.Method.POST,
Constants.url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("TAG", "Response: " + response);
if (response.length() > 0) {
Snackbar.make(fab, "Successfully Posted", Snackbar.LENGTH_LONG).show();
edtName.setText(null);
edtPhone.setText(null);
} else {
Snackbar.make(fab, "Try Again", Snackbar.LENGTH_LONG).show();
}
progressDialog.dismiss();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.dismiss();
Snackbar.make(fab, "Error while Posting Data", Snackbar.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put(Constants.nameField, name);
params.put(Constants.phoneField, phone);
return params;
}
};
request.setRetryPolicy(new DefaultRetryPolicy(
50000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
queue.add(request);
}
you can view your responses in Google form's Response section or in Google sheets. To get response in Google sheet, just click excel symbol in response section of your Google form.This concept is read from the following link http://codesmith.in/post-data-google-drive-sheet-through-mobile-app/ and this is one of my favourite post I read.
Follow Us
Were this world an endless plain, and by sailing eastward we could for ever reach new distances