Cảm ơn bạn đã ghé thăm cộng đồng vietandroid.com. Đây là một cộng đồng mở và miễn phí vì vậy chúng tôi rất mong bạn hãy tham gia và hoạt động tích cực bằng cách đặt câu hỏi/thắc mắc hoặc những kinh nghiệm của bạn trong lập trình Android tới mọi người. Chúc bạn thành công !
0 phiếu
đã hỏi bởi (120 điểm)

Em đang tìm hiểu về lấy một số thông tin thiết bị như : IMEI, SĐT, vị trí GPS...

E đã lấy thành công trên các phiên bản 5.1 trở xuống, nhưng khi thử với 6.0 thì ko lấy được giá trị của GPS (Lat, long). 
Code của em đây ạ:

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

        btnGetLocation = (Button) findViewById(R.id.btnGetLocation);
        btnGetPhoneNumber = (Button) findViewById(R.id.btnGetPhoneNumber);
        btnIMEI = (Button) findViewById(R.id.btnIMEI);

        txtPhoneNumber = (TextView) findViewById(R.id.txtPhoneNumber);
        txtIMEI = (TextView) findViewById(R.id.txtIMEI);
        txtLocation = (TextView) findViewById(R.id.txtLocation);

        int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE);

        if(permissionCheck != PackageManager.PERMISSION_GRANTED){
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE},
                    REQUEST_READ_PHONE_STATE);
        } else {
            //TODO
        }





        telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        imei = telephonyManager.getDeviceId();
        phoneNumber = telephonyManager.getLine1Number();

        btnIMEI.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                txtIMEI.setText(imei);
            }
        });

        btnGetPhoneNumber.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                txtPhoneNumber.setText(phoneNumber);
            }
        });


        locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
            // here to request the missing permissions, and then overriding
            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
            //                                          int[] grantResults)
            // to handle the case where the user grants the permission. See the documentation
            // for ActivityCompat#requestPermissions for more details.
            return;
        }
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 10, new LocationListener() {
            @Override
            public void onLocationChanged(Location location) {
                latitude = location.getLatitude();
                longitude = location.getLongitude();

                btnGetLocation.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        txtLocation.setText("Lat: " + latitude +"\nLong: " +longitude);
                    }
                });
            }

            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {

            }

            @Override
            public void onProviderEnabled(String provider) {

            }

            @Override
            public void onProviderDisabled(String provider) {

            }
        });

    }

 

 

 

Xin vui lòng đăng nhập hoặc đăng ký để trả lời câu hỏi này.

...