gradle buildzip
cp res/wit.sdk.jar app/libs
cp res/jniLibs app/src/main/jniLibs
Add these 2 dependencies to build.gradle
compile 'com.google.code.gson:gson:2.2.4'
compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
Add these permissions
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Run
gradle assemble
Implement IWitListener, and call the .toggleListening() method. It should look something like
public class MainActivity extends ActionBarActivity implements IWitListener {
Wit _wit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String accessToken = "YOUR CLIENT ACCESS TOKEN HERE";
_wit = new Wit(accessToken, this);
_wit.enableContextLocation(getApplicationContext());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void toggle(View v) {
try {
_wit.toggleListening();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void witDidGraspIntent(ArrayList<WitOutcome> witOutcomes, String messageId, Error error) {
TextView jsonView = (TextView) findViewById(R.id.jsonView);
jsonView.setMovementMethod(new ScrollingMovementMethod());
Gson gson = new GsonBuilder().setPrettyPrinting().create();
if (error != null) {
jsonView.setText(error.getLocalizedMessage());
return ;
}
String jsonOutput = gson.toJson(witOutcomes);
jsonView.setText(jsonOutput);
((TextView) findViewById(R.id.txtText)).setText("Done!");
}
@Override
public void witDidStartListening() {
((TextView) findViewById(R.id.txtText)).setText("Witting...");
}
@Override
public void witDidStopListening() {
((TextView) findViewById(R.id.txtText)).setText("Processing...");
}
@Override
public void witActivityDetectorStarted() {
((TextView) findViewById(R.id.txtText)).setText("Listening");
}
@Override
public String witGenerateMessageId() {
return null;
}
public static class PlaceholderFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.wit_button, container, false);
}
}
}