【发布时间】:2014-02-13 17:10:44
【问题描述】:
如 GDK 教程中所述,我正在使用 GDK 试验相机 API,但我根本没有触发我的 OnActivityResult API。我不确定为什么会这样,为您的参考附加代码 sn-p。提前感谢您的帮助。
// The "main" activity...
public class LiveCardDemoActivity extends Activity
{
/* Camera section : Start */
private void takePicture() {
try
{
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE_REQUEST);
Log.d("takePicture() is complete...");
}
catch ( Exception ex)
{
Log.d("takePicture() thrown an exception :"+ex.getMessage());
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == TAKE_PICTURE_REQUEST && resultCode == RESULT_OK) {
String picturePath = data.getStringExtra(
CameraManager.EXTRA_PICTURE_FILE_PATH);
processPictureWhenReady(picturePath);
}
super.onActivityResult(requestCode, resultCode, data);
}
private void processPictureWhenReady(final String picturePath) {
Log.d("Yayyyyyyyyyy.... Camera is working...");
displayProgress("Activating STB ...",R.drawable.menu_icon_record);
}
@Override
protected void onDestroy()
{
//doUnbindService(); -- GD
super.onDestroy();
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Log.d("Beta: onCreate() called.");
createCards();
mCardScrollView = new CardScrollView(this);
m_viewAdapter = new ExampleCardScrollAdapter();
mCardScrollView.setAdapter(m_viewAdapter);
mCardScrollView.activate();
setContentView(mCardScrollView);
/* -- GD
setContentView(R.layout.activity_livecarddemo);
*/
// For gesture handling.
mGestureDetector = createGestureDetector(this);
// doStartService(); --GD
}
@Override
protected void onResume()
{
super.onResume();
Log.d("Beta: onResume() called.");
// For live card menu handling
//openOptionsMenu(); --GD
}
// Context menus
// ...
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
Log.d("onCreateOptionsMenu() called.");
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_livecarddemo_livecard, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
Log.d("onOptionsItemSelected() called.");
// Handle item selection.
switch (item.getItemId()) {
case R.id.menu_item_Direction:
Navigate();
break;
case R.id.menu_item_Scan:
scan_Codes();
break;
case R.id.menu_item_Activate:
takePicture();
break;
default:
break;
}
//return super.onOptionsItemSelected(item);
return true;
}
@Override
public void onOptionsMenuClosed(Menu menu)
{
Log.d("onOptionsItemSelected() called.");
// Nothing else to do, closing the activity.
finish();
}
@Override
public boolean onGenericMotionEvent(MotionEvent event) {
if (mGestureDetector != null) {
return mGestureDetector.onMotionEvent(event);
}
return false;
}
private GestureDetector createGestureDetector(Context context) {
GestureDetector gestureDetector = new GestureDetector(context);
// Create a base listener for generic gestures
gestureDetector.setBaseListener(new GestureDetector.BaseListener() {
@Override
public boolean onGesture(Gesture gesture) {
if (Log.D)
Log.d("gesture = " + gesture);
/*if(gesture == Gesture.SWIPE_RIGHT)
{
scrollLiveCards();
return true;
} */
if (gesture == Gesture.TAP || gesture == Gesture.LONG_PRESS) {
handleGestureTap();
return true;
} else if (gesture == Gesture.TWO_TAP) {
handleGestureTap();
//handleGestureTwoTap();
return true;
}
return false;
}
});
return gestureDetector;
}
private void handleGestureTap() {
Log.d("handleGestureTap() called.");
//doStopService(); -- GD
//finish(); -- GD
openOptionsMenu();
}
}
【问题讨论】:
标签: android-intent android-camera google-glass