System.currentTimeMillis()
以前の質問で、Droid にバグがあるかどうかを尋ねましたが、答えはノーでした。
私が抱えている問題は別の場所にあると思います。Droid の単独ユーザーが、テスト アプリが彼の電話で動作するかどうかを報告するのを待っている間に、関連するコードをいくつかここに投稿したいと思います。
無関係だと思われるコードをすべて削除したことを覚えておいてください (ログの最初の疑わしい行につながるコードを投稿します)。問題のあるコードを削除した可能性がありますが、それは疑わしいです。コードではなく、レイアウトの問題のようなにおいがします。私がこれを言うのは、(ログがある最後の行を参照) サーフェスが 0 であるためです。
よろしく、アリ。
マニフェスト
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".BeMeBB" android:label="@string/app_name"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="BeMeBBPref" android:label="@string/app_name">
</activity>
</application>
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
<supports-screens>
</supports-screens>
レイアウト
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingTop="0pt" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:gravity="bottom" android:background="#00000001">
<android.view.SurfaceView android:id="@+id/preview_LAND"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:keepScreenOn="true" android:layout_margin="0pt">
</android.view.SurfaceView>
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight="1">
<TextView android:id="@+id/ACCELERATION_LINE" android:text="0 2 4 6 8 10 12 14 16 18 20 "
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:typeface="monospace" android:layout_weight="0"
android:textSize="20dp" android:textStyle="bold" android:textColor="@color/white"
android:layout_gravity="center_horizontal" android:paddingTop="0dp"
android:paddingLeft="0dp" android:background="#66000000" />
<TextView android:id="@+id/ACCELERATION" android:text="@string/Accelerometers"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:typeface="monospace" android:textStyle="bold"
android:layout_weight="0" android:textSize="20dp" android:textColor="@color/white"
android:layout_gravity="center_horizontal|top" android:paddingLeft="0dp"
android:background="#66000000" />
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:gravity="bottom" android:layout_weight="1">
<Button android:id="@+id/SAVE_LAND" android:text="@string/Save"
android:layout_width="wrap_content" android:gravity="left|bottom"
android:layout_height="wrap_content" android:layout_weight="0"
android:textSize="26dp" android:textColor="@color/black"
android:padding="20dp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
コード
public class BeMeBB extends Activity implements OnClickListener, android.content.DialogInterface.OnClickListener, SensorEventListener {
private SurfaceView preview=null;
private SurfaceHolder previewHolder=null;
SurfaceHolder.Callback surfaceCallback = new SurfaceHolder.Callback() {
public void surfaceCreated(SurfaceHolder holder) {
DoRecording();
}
}; // End SurfaceHolder.Callback surfaceCallback
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main_land);
preview=(SurfaceView)findViewById(R.id.preview_LAND);
previewHolder=preview.getHolder();
previewHolder.addCallback(surfaceCallback);
previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
} // End OnCreate
private void DoRecording() {
m_worker.setSurfaceHolder(previewHolder);
} // End DoRecording
} // End class
別のクラスで
public void setSurfaceHolder(SurfaceHolder previewHolder) {
m_previewHolder = previewHolder;
m_surface = m_previewHolder.getSurface();
Log.d("BeMeBB", "BeMeBBWorker m_surface=" + m_surface);
} //End setSurfaceHolder
およびログの結果 (サーフェスは無効です):
11-19 17:58:13.171 D/BeMeBB ( 1404): BeMeBBService m_surface=Surface(native-token=0)