1. 程式人生 > >Android之傳S

Android之傳S

先添上一個計算手機中的感測器的程式碼

public class SensorDetectorActivity extends Activity {
	//SensorManager物件引用
	SensorManager mySensorManager;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		//設定為豎屏模式
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
		//獲得SensorManager物件
		mySensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);

		List<Sensor> ll=mySensorManager.getSensorList(Sensor.TYPE_ALL);
		StringBuilder sb=new StringBuilder();
		sb.append("感測器總數:");
		sb.append(ll.size());
		sb.append("\n==========================\n");
		for(Sensor s:ll)
		{
			sb.append("編號:");
			sb.append(s.getType());
			sb.append("\n");
			sb.append("名稱:");
			sb.append(s.getName());
			sb.append("\n");
			sb.append("工作電流:");
			sb.append(s.getPower());
			sb.append("mA\n");
			sb.append("解析度:");
			sb.append(s.getResolution());
			sb.append("\n");
			sb.append("最大測量範圍:");
			sb.append(s.getMaximumRange());
			sb.append("\n");
			sb.append("供應商:");
			sb.append(s.getVendor());
			sb.append("\n");
			sb.append("版本號:");
			sb.append(s.getVersion());
			sb.append("\n==========================\n");
		}

		setContentView(R.layout.main);
		EditText et=(EditText)this.findViewById(R.id.EditText01);
		et.setKeyListener(null);
		et.setText(sb.toString());
	}
}

下面逐步分析 在這裡插入圖片描述 1.建立SensorManager的物件引用 SensorManager主要是通過它來訪問裝置的感測器,同時SensorManager也提供了方法 2.設定豎屏模式 方案1 :在manifests.xml中配置

<activity
	android:name=".SketchpadActivity"
	android:screenOrientation="landscape"/><!--讓該Activity總是顯示為橫屏-->

screenOrientations屬性共有7中可選值(常量定義在 android.content.pm.ActivityInfo類中 ) landscape:橫屏(風景照) ,顯示時寬度大於高度; portrait:豎屏 (肖像照) , 顯示時 高 度大於 寬 度 ; user:使用者當前的首選方向; behind:繼承Activity堆疊中當前Activity下面的那個Activity的方向; sensor:由物理感應器決定顯示方向,它取決於使用者如何持有裝置,當 裝置 被旋轉時方向會隨之變化——在橫屏與豎屏之間; nosensor:忽略物理感應器——即顯示方向與物理感應器無關,不管使用者如何旋轉裝置顯示方向都不會隨著改變("unspecified"設定除外); unspecified:未指定,此為預設值,由Android系統自己選擇適當的方向,選擇策略視具體裝置的配置情況而定,因此不同的裝置會有不同的方向選擇;

方案二:使用setRequestedOrientation 在這裡插入圖片描述