Fusion Tables is an experimental data visualization web application to gather, visualize, and share data tables. You can use Fusion table as datasourc 8147 e for your app.Fusion REST API allow us to query Fussion table to retrive or insert data into table. Fusion_Helper.java explains how you can easily create connection of your app with Fusion Table and send and retrive data from android app.
- Go to console.cloud.google.com and create a service account, Enable Fussion Table Api and get service email and get Google Credidantiol File
- Go to Drive and create a new Fusion Table and share this table with your service email.
- Add follwoing dependencies to your project
dependencies {
...
compile 'com.google.apis:google-api-services-fusiontables:v2-rev18-1.22.0'
compile 'com.google.apis:google-api-services-drive:v3-rev81-1.22.0'
compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile 'org.apache.httpcomponents:httpclient:4.5'
}
android {
.....
defaultConfig {
...
configurations.all {
resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
-
Copy .p12 extension file to
src/main/assets
folder of your project. -
Now copy
Fusion_Helper.java
to your project. -
in
Fusion_Helper.java
change the app name to your app name,change theservice email
, change the name of.p12 extension file
. -
Initialize Fussion_helper.java in your activity
public class exampleActivity extends AppCompatActivity {
Fusiontables fusiontables;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register_user);
fusiontables=new Fusion_Helper(this).open(); // this will return a Fussion Table instance whcih you can
....
}
- Example of
fusion_table
query in AsyncTask
private class Fusion_Query extends AsyncTask {
private Sqlresponse sqlresponse=null;
private int flag=0;
private String e_msg;
@Override
protected Object doInBackground(Object[] objects) {
try {
sqlresponse=fusiontables.query().sql("Select * from "+YOUR_TABLE_ID+" ;").execute();
flag=1;
} catch (IOException e) {
e.printStackTrace();
flag=-1;
e_msg=e.getMessage();
}
return null;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
if(flag==1){
//you query excuted sucsefully
try {
Log.d("Fusion_query","query success"+"\n"+sqlresponse.toPrettyString());
} catch (IOException e) {
e.printStackTrace();
}
}else if(flag==-1){
//error
Log.d("Fusion_query",e_msg);
}
}
}
- Add the following permession in your
Manifest.xml
<uses-permission android:name="android.permission.INTERNET"></uses-permission>