Bài 64: Lập trình Sensors trong lập trình Android

Thảo luận trong 'Rao Vặt Toàn Quốc' bắt đầu bởi datecom, 17/8/15.

  1. datecom

    datecom Thành Viên Mới

    Tham gia ngày:
    10/7/15
    Bài viết:
    35
    Đã được thích:
    0
    Điểm thành tích:
    6
    Trung tâm đào tạo lập trình android Vietpro chia sẻ với các bạn bài học : Bài 64: Sensors trong lập trình Android
    Hầu hết các thiết bị Android có tích hợp cảm biến đo chuyển động, định hướng và điều kiện môi trường khác nhau. Các nền tảngAndroid hỗ trợ ba loại lớn của cảm biến.

    – Cảm biến chuyển động(Motion Sensors)
    – Cảm biến môi trường(Environmental sensors)
    – Cảm biến vị trí(Position sensors)

    Một số các cảm biến này là dựa trên phần cứng và một số cảm biến dựa trên phần mềm. Dù là cảm biến, lập trình android cho phép chúng tôi để có được các dữ liệu thô từ các cảm biến và sử dụng nó trong ứng dụng của chúng ta.


    Android cung cấp SensorManager và cảm biến lớp học để sử dụng các cảm biến trong ứng dụng của chúng tôi. Để sử dụng các bộ cảm biến, điều đầu tiên bạn cần làm là để nhanh chóng các đối tượng của lớp SensorManager. Nó có thể đạt được như sau.


    SensorManager sMgr;
    sMgr=(SensorManager)this.getSystemService(SENSOR_SERVICE);
    Điều tiếp theo bạn cần làm là để nhanh chóng các đối tượng của lớp cảm biến bằng cách gọi phương thức getDefaultSensor() của lớp SensorManager. Trung tâm đào tạo học photoshop chuyên nghiệp với đội ngũ giáo viên trẻ, Cú pháp của nó được đưa ra dưới đây


    Sensor light;
    light=sMgr.getDefaultSensor(Sensor.TYPE_LIGHT);


    Một khi cảm biến được khai báo, bạn cần đăng ký nghe của nó và ghi đè lên hai phương pháp được onAccuracyChanged onSensorChanged. Cú pháp của nó là như sau


    sMgr.registerListener(this,light,SensorManager.SENSOR_DELAY_NORMAL);
    publicvoidonAccuracyChanged(Sensor sensor,intaccuracy){
    }
    publicvoidonSensorChanged(SensorEvent event){
    }


    1. Lấy danh sách các bộ cảm biến được hỗ trợ.

    Bạn có thể nhận được một danh sách các bộ cảm biến được hỗ trợ bởi điện thoại bằng cách gọi phương thức getSensorList, mà sẽ trả về một danh sách các bộ cảm biến có chứa tên của họ và số phiên bản và nhiều thông tin. Sau đó bạn có thể duyệt danh sách để lấy thông tin. Cú pháp của nó được đưa ra dưới đây:


    sMgr=(SensorManager)this.getSystemService(SENSOR_SERVICE);
    List<Sensor>list=sMgr.getSensorList(Sensor.TYPE_ALL);
    for(Sensor sensor:list){
    }
    Ngoài các phương pháp này, có những phương pháp khác được cung cấp bởi lớp SensorManager để quản lý cảm biến khung. Những phương pháp này được liệt kê dưới đây –

    STTPhương pháp và mô tả
    1getDefaultSensor(int type)
    Phương pháp này có được các cảm biến mặc định cho một loại nhất định.
    2getOrientation(float[]R, float []values)
    Phương thức này trả về một mô tả của clip chính hiện hành về clipboard nhưng không phải là một bản sao của dữ liệu của nó.
    3 getInclination(float[] I)
    Phương pháp này tính toán góc nghiêng địa từ radian từ các ma trận độ nghiêng.
    4 registerListener(SensorListener listener, int sensors, int rate)
    Phương pháp này đăng ký một người biết lắng nghe cho cảm biến
    5 unregisterListener(SensorEventListener listener, Sensor sensor)
    Phương pháp này unregisters một người biết lắng nghe cho các cảm biến mà nó được đăng ký.
    6 getOrientation(float[] R, float[] values)
    Phương pháp này tính định hướng của thiết bị dựa trên ma trận xoay vòng.
    7 getAltitude(float p0, float p)
    Phương pháp này tính toán độ cao trong mét từ áp suất khí quyển và áp suất ở mực nước biển.


    2. Ví dụ

    Dưới đây là một ví dụ minh hoạ việc sử dụng lớp SensorManager. nhiệt tình và chuyên nghiệp; đào tạo học php cơ bản nâng cao !Nó tạo ra một ứng dụng cơ bản cho phép bạn xem danh sách các bộ cảm biến trên thiết bị của bạn.


    Để thử nghiệm với ví dụ này, bạn có thể chạy trên một thiết bị thực tế hoặc trong một mô phỏng.

    Các bướcMô tả
    1Bạn sẽ sử dụng Android studio để tạo ra một ứng dụng Android dưới một gói com.example.sairamkrishna.myapplication. Trong khi tạo dự án này, chắc chắn bạn Target SDK và biên dịch với các phiên bản mới nhất của Android SDK sử dụng các cấp cao hơn của các API.
    2Sửa file src/ MainActivity.java để thêm mã cần thiết.
    3Sửa đổi res/layout/activity_main để thêm các thành phần XML tương ứng.
    4Chạy ứng dụng và chọn một thiết bị Android chạy và cài đặt các ứng dụng trên nó và kiểm tra kết quả.
    Sau đây là nội dung của MainActivity.java sửa đổi.


    packagecom.example.sairamkrishna.myapplication;

    import android.app.Activity;
    import android.hardware.SensorManager;
    import android.os.Bundle;

    import android.util.Log;

    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;

    import android.widget.TextView;

    import java.util.List;
    import android.hardware.Sensor;
    import android.hardware.SensorManager;

    publicclassMainActivityextendsActivity{
    TextView tv1=null;
    privateSensorManager mSensorManager;
    @Override

    protectedvoidonCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tv1=(TextView)findViewById(R.id.textView2);
    tv1.setVisibility(View.GONE);

    mSensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);
    List<Sensor>mList=mSensorManager.getSensorList(Sensor.TYPE_ALL);

    for(inti=1;i<mList.size();i++){
    tv1.setVisibility(View.VISIBLE);
    tv1.append("\n"+mList.get(i).getName()+"\n"+mList.get(i).getVendor()+"\n"+mList.get(i).getVersion());
    }
    }
    @Override
    publicbooleanonCreateOptionsMenu(Menu menu){
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main,menu);
    returntrue;
    }

    @Override
    publicbooleanonOptionsItemSelected(MenuItem item){
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.

    intid=item.getItemId();

    //noinspection SimplifiableIfStatement
    if(id==R.id.action_settings){
    returntrue;
    }
    returnsuper.onOptionsItemSelected(item);
    }
    }


    Nội dung file xml activity_main.xml.


    <RelativeLayout xmlns:android=" "
    xmlns:tools=" "android:layout_width="match_parent"
    android:layout_height="match_parent"android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:transitionGroup="true">

    <TextView android:text="Sensor "android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textview"
    android:textSize="35dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"/>

    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Tutorials point"
    android:id="@+id/textView"
    android:layout_below="@+id/textview"
    android:layout_centerHorizontal="true"
    android:textColor="#ff7aff24"
    android:textSize="35dp"/>

    <ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView"
    android:src="@drawable/abc"
    android:layout_below="@+id/textView"
    android:layout_centerHorizontal="true"
    android:theme="@style/Base.TextAppearance.AppCompat"/>

    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Text"
    android:id="@+id/textView2"
    android:layout_below="@+id/imageView"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"/>

    </RelativeLayout>


    Nội dung file res/values/string.xml.


    <resources>
    <stringname="app_name">My Application</string>
    <stringname="hello_world">Hello world!</string>
    <stringname="action_settings">Settings</string>
    </resources>
    Nội dung file AndroidManifest.xml .


    <?xml version="1.0"encoding="utf-8"?>
    <manifest xmlns:android=" "
    package="com.example.sairamkrishna.myapplication">
    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">

    <activity
    android:name=".MainActivity"
    android:label="@string/app_name">

    <intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>

    </activity>

    </application>
    </manifest>

    Kết quả:
    [​IMG]

    Bây giờ nếu bạn nhìn vào màn hình điện thoại, bạn sẽ thấy danh sách các bộ cảm biến được hỗ trợ bởi điện thoại của bạn cùng với tên và phiên bản của họ và các thông tin khác.

    Nếu bạn muốn chạy ứng dụng này trên các thiết bị khác nhau, sản lượng sẽ khác nhau vì đầu ra phụ thuộc vào số lượng các bộ cảm biến được hỗ trợ bởi điện thoại.
    Nguồn: Bài 64: Sensors trong lập trình Android
     
    Cảm ơn đã xem bài:

    Bài 64: Lập trình Sensors trong lập trình Android

    Đang tải...


Like và Share ủng hộ ITSEOVN