رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

سلام
من یک برنامه دارم مینویسم که مبتنی به نقشه است و من صفحه اول فقط 1 دکمه گذاشتم که کلیک میشه میره صفحه دوم که نقشه لود میشه و لوکیشن کاربر رو مارک میکنه و این برنامه رو روی گوشی خوردم خروجی گرفتم اجرا میشه و موقعیت جاری منو بهم میده ولی وقتی روی دستگاه های دیگه و گوشی های دیگه تست میکنم و خروجی میگیرم وقتی روی دکمه میزنم بره صفحه بعد بره نقشه رو بیاره برنامه پیغام خطا میده میاد بیرون

وارد کنسول گوگل شدم و تمام کاراشو کردم و سطح دسترسی ها رو دادم.

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 12 ساعت قبل، miladesd گفته است :

سلام
من یک برنامه دارم مینویسم که مبتنی به نقشه است و من صفحه اول فقط 1 دکمه گذاشتم که کلیک میشه میره صفحه دوم که نقشه لود میشه و لوکیشن کاربر رو مارک میکنه و این برنامه رو روی گوشی خوردم خروجی گرفتم اجرا میشه و موقعیت جاری منو بهم میده ولی وقتی روی دستگاه های دیگه و گوشی های دیگه تست میکنم و خروجی میگیرم وقتی روی دکمه میزنم بره صفحه بعد بره نقشه رو بیاره برنامه پیغام خطا میده میاد بیرون

وارد کنسول گوگل شدم و تمام کاراشو کردم و سطح دسترسی ها رو دادم.

سلام، روی چه نسخه هایی از اندروید دارید تست میکنید؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

احتمالا گوشی مورد نظر باید گوگل پلی سرویس رو آپدیت کنه چون دارید از ورژن های جدیدش استفاده میکنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 4 ساعت قبل، شاهرخ جهان زاده گفته است :

سلام، روی چه نسخه هایی از اندروید دارید تست میکنید؟

compileSdkVersion 26
buildToolsVersion 26.0.2
لینک ارسال
به اشتراک گذاری در سایت های دیگر
در هم اکنون، miladesd گفته است :

compileSdkVersion 26
buildToolsVersion 26.0.2

احتمال میدم که از پرمیشن ها باشه، چون باید برای اپ این رو مشخص کنید...

چون نحوه دریافت پرمیشن ها از نسخه اندروید 6 به بعد متفاوت شده و در همه حالات باید توسط اپ این قضیه چک بشه...

اگر کدهای اکتیویتی که مپ رو توی اون پیاده سازی کردید رو بذارید بهتر میشه راهنمایی کرد...

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در در 1396/11/11, 14:51:55، شاهرخ جهان زاده گفته است :

احتمال میدم که از پرمیشن ها باشه، چون باید برای اپ این رو مشخص کنید...

چون نحوه دریافت پرمیشن ها از نسخه اندروید 6 به بعد متفاوت شده و در همه حالات باید توسط اپ این قضیه چک بشه...

اگر کدهای اکتیویتی که مپ رو توی اون پیاده سازی کردید رو بذارید بهتر میشه راهنمایی کرد...

package com.test2.arian.test2;


import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapActivity extends AppCompatActivity implements OnMapReadyCallback {



    Double latitude, longitude;

    GoogleMap map;
    private Double myLocation;
    private Object trafficEnabled;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(com.test2.arian.test2.R.layout.activity_google_map);

        //-----------------MY LOCATION-------------------------------------

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(com.test2.arian.jobinmap.R.id.google_map);
        mapFragment.getMapAsync(this);

    }
    @Override
    public void onMapReady(GoogleMap googleMap) {

        map = googleMap;
        map.setMyLocationEnabled(true);
        LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE);
       boolean gpsenable = service.isProviderEnabled(LocationManager.GPS_PROVIDER);
        boolean networkenable = service.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
       LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        Location location = null;
        if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
            location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        }


        double longitude = location.getLongitude();
        double latitude = location.getLatitude();

        LatLng My_Position = new LatLng(latitude,longitude);
        MarkerOptions myposition = new MarkerOptions().position(My_Position).title("mmm").snippet("position man").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
        map.addMarker(myposition);

       map.animateCamera(CameraUpdateFactory.newLatLngZoom(My_Position,16));
        




    }


}

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 2 هفته بعد...
در در 1396/11/13, 00:58:04، miladesd گفته است :

package com.test2.arian.test2;


import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapActivity extends AppCompatActivity implements OnMapReadyCallback {



    Double latitude, longitude;

    GoogleMap map;
    private Double myLocation;
    private Object trafficEnabled;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(com.test2.arian.test2.R.layout.activity_google_map);

        //-----------------MY LOCATION-------------------------------------

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(com.test2.arian.jobinmap.R.id.google_map);
        mapFragment.getMapAsync(this);

    }
    @Override
    public void onMapReady(GoogleMap googleMap) {

        map = googleMap;
        map.setMyLocationEnabled(true);
        LocationManager service = (LocationManager) getSystemService(LOCATION_SERVICE);
       boolean gpsenable = service.isProviderEnabled(LocationManager.GPS_PROVIDER);
        boolean networkenable = service.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
       LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        Location location = null;
        if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
            location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        }


        double longitude = location.getLongitude();
        double latitude = location.getLatitude();

        LatLng My_Position = new LatLng(latitude,longitude);
        MarkerOptions myposition = new MarkerOptions().position(My_Position).title("mmm").snippet("position man").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
        map.addMarker(myposition);

       map.animateCamera(CameraUpdateFactory.newLatLngZoom(My_Position,16));
        




    }


}

 

کسی نمیدونه مشکل کجاست؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 36 دقیقه قبل، miladesd گفته است :

کسی نمیدونه مشکل کجاست؟

شما باید پرمیشن ها رو بررسی کنید...

علاوه بر ACCESS_FINE_LOCATION باید ACCESS_COARSE_LOCATION رو هم داشته باشید...

میتونید به روش زیر عمل کنید:

public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback, android.location.LocationListener {
  
    private GoogleMap mMap;
    private MapView map_view;
    //global objects for permission check
    private static final String[] LOCATION_PERM = {android.Manifest.permission.ACCESS_FINE_LOCATION};
    private static final String[] COARSE_PERM = {Manifest.permission.ACCESS_COARSE_LOCATION};
    LocationManager locationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);

        map_view = (MapView) findViewById(R.id.map_view);
        map_view.onCreate(savedInstanceState);
        map_view.getMapAsync(new OnMapReadyCallback() {
            @Override
            public void onMapReady(GoogleMap gMap) {
                googleMap = gMap;
  
                if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION) != 			 	PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getApplicationContext(), 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.
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                        requestPermissions(LOCATION_PERM, 1337 + 3);
                        requestPermissions(COARSE_PERM, 1337 + 3);
                    }
                    return;
                }
                googleMap.setMyLocationEnabled(true);
  
 		locationManager = (LocationManager) getSystemService(getApplicationContext().LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        Location location = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria, false));
        String bestProvider = String.valueOf(locationManager.getBestProvider(criteria, true)).toString();
  
 		if (location != null) {
                CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(location.getLatitude(),
                                                                                               location.getLongitude())).zoom(16).build();
                googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
            } else {
                locationManager.requestLocationUpdates(bestProvider, 1000, 16, this);
            }
}

    @Override
    public void onLocationChanged(Location location) {
        if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.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.
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                requestPermissions(LOCATION_PERM, 1337 + 3);
                requestPermissions(COARSE_PERM, 1337 + 3);
            }
            return;
        }
        locationManager.removeUpdates(this);
        CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(location.getLatitude(), location.getLongitude())).zoom(16).build();
        mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
    }

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

    }

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }
}

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...