2009-11-26 5 views
0

Roger,Антенна для мобильных телефонов

Я вижу, что вы возились с намерениями с камерой. У меня возникают настоящие проблемы, просто получая простое приложение, чтобы сказать мне, когда нажата кнопка камеры. У вас есть код, который поможет мне на моем пути.

Спасибо.

Дэвид

ответ

3

В манифесте, вы должны заявить вы хотите получить намерение на кнопку камеры:

<receiver android:name="domain.namespace.CameraReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.CAMERA_BUTTON"/> 
     </intent-filter> 
    </receiver> 
    <activity android:name="domain.namespace.MyCameraActivity" 
      android:label="@string/app_name" android:screenOrientation="landscape" android:icon="@drawable/camera" 
     android:clearTaskOnLaunch="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    <intent-filter> 
      <action android:name="android.media.action.IMAGE_CAPTURE" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
    </activity> 

В приемнике:

public void onReceive(Context context, Intent intent) { 
    KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); 

    if (event == null) { 
    return; 
    } 

    //prevent the camera app from opening 
    abortBroadcast();  

    Intent i = new Intent(Intent.ACTION_MAIN); 
    i.setClass(context, MyCameraActivity.class); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(i);  
} 
Смежные вопросы