2014-12-20 32 views
1

我有一個服務類正在拍照並使用相機將其寫入SD卡。現在我希望我應該每隔10秒鐘撥打一次該服務,以便我可以每隔10秒從攝像頭拍攝圖像。但是我們得到了例外。這裏是我的主要活動代碼:在一個線程中運行的服務

public class MainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(com.example.picturesenderbluetooth.R.layout.capture_and_send); 

    Button cap = (Button)findViewById(R.id.button1); 
    cap.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      new Thread(new Task()).start(); 
     } 
    }); 

    } 

public void turnbluetoothon() 
{ 
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  
    if (mBluetoothAdapter.disable()) { 
     mBluetoothAdapter.enable(); 
    } 
} 


class Task implements Runnable { 

    @Override 
    public void run() { 
     while(true) { 
      try { 
       Log.w("Rami code yaar","Rami mei phir chal gaya... hahaha"); 
       startService(new Intent(getBaseContext(), Backgroundservice.class)); 
       Thread.sleep(10000); 
       stopService(new Intent(getBaseContext(), Backgroundservice.class)); 

      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

} 
} 

的logcat中顯示:

12-20 17:11:25.854: E/AndroidRuntime(9859): FATAL EXCEPTION: main 
12-20 17:11:25.854: E/AndroidRuntime(9859): java.lang.RuntimeException: Unable to start service [email protected] with Intent { cmp=com.example.picturesenderbluetooth/com.example.Picture_Sender_Bluetooth.Backgroundservice }: java.lang.RuntimeException: Fail to connect to camera service 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2829) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at android.app.ActivityThread.access$1900(ActivityThread.java:156) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1441) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at android.os.Looper.loop(Looper.java:153) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at android.app.ActivityThread.main(ActivityThread.java:5336) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at java.lang.reflect.Method.invoke(Method.java:511) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at dalvik.system.NativeStart.main(Native Method) 
12-20 17:11:25.854: E/AndroidRuntime(9859): Caused by: java.lang.RuntimeException: Fail to connect to camera service 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at android.hardware.Camera.native_setup(Native Method) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at android.hardware.Camera.<init>(Camera.java:445) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at android.hardware.Camera.open(Camera.java:421) 
12-20 17:11:25.854: E/AndroidRuntime(9859):  at com.example.Picture_Sender_Bluetooth.Backgroundservice.onStart(Backgroundservice.java:37) 

什麼使應用程序崩潰?我將如何解決它?

+0

您是否向清單文件添加了權限? <使用權限的android:name =「android.permission.CAMERA」/> – Heskja

+0

可能重複的[android java lang runtimeexception未能連接到攝像頭服務](http://stackoverflow.com/questions/23904459/android-java -lang-runtimeexception-fail-to-connect-to-camera-service) – marcinj

+0

我確實先生,我添加了權限 – ali

回答

0

我發現了什麼問題。在我做的服務中。我沒有釋放我的相機。所以我打電話給這個功能。

cameraobject. release(); 

該代碼現在運行良好!