Android应用程序在三星平板电脑上出现问题,但在Nexus 5上运行良好?

时间:2015-03-12 20:55:35

标签: android

我很困惑,我不确定我是否遗漏了什么。目前,我使用我的Nexus 5作为测试设备构建的应用程序运行良好。

我最近把它插入三星Galaxy Note 10.1,但有些功能无法正常工作。

例如,我使用Google Maps API,在我的Nexus上,它将专注于您当前的位置。如果您没有启用位置,则默认为设置城市。这在Nexus上效果很好,但这款平板电脑专注于太平洋中部。它显示了应该有的小蓝点位置,但打开时它不会聚焦在它上面?

另一个例子是YouTube网页浏览。在Nexus上,YouTube视频通过WebView播放。这在平板电脑上发生了变化,因为没有任何视频会播放。它只是显示一个灰色框。

有人有任何想法吗?

我将开始使用YouTube API并将其整合以解决YouTube问题,但我不知道Google地图发生了什么。

提前致谢!

编辑:

private void setUpMap() {
    // Enable MyLocation Layer of Google Map
    googleMap.setMyLocationEnabled(true);

    // Get LocationManager object from System Service LOCATION_SERVICE
    LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    // Create a criteria object to retrieve provider
    Criteria criteria = new Criteria();

    // Get the name of the best provider
    String provider = locationManager.getBestProvider(criteria, true);

    // Get Current Location
    Location myLocation = locationManager.getLastKnownLocation(provider);

    googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

    if (myLocation == null) {
        latitude = -36.916278;
        longitude = 174.795372;
        LatLng latLng = new LatLng(latitude, longitude);
        googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
    } else {
        // Get latitude of the current location
        latitude = myLocation.getLatitude();

        // Get longitude of the current location
        longitude = myLocation.getLongitude();

        // Create a LatLng object for the current location
        LatLng latLng = new LatLng(latitude, longitude);

        // Show the current location in Google Map
        googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
    }

    // Zoom in the Google Map
    googleMap.animateCamera(CameraUpdateFactory.zoomTo(8));
}

这是应该在平板电脑上运行的地图设置代码。适用于Nexus 5。

1 个答案:

答案 0 :(得分:0)

尝试使用CameraUpdateFactory.newCameraPosition()

应该是这样的:

LatLng  latLng;
if (myLocation == null) {
    latitude = -36.916278;
    longitude = 174.795372;
    latLng = new LatLng(latitude, longitude);
} else {
    // Get latitude of the current location
    latitude = myLocation.getLatitude();

    // Get longitude of the current location
    longitude = myLocation.getLongitude();

    // Create a LatLng object for the current location
    latLng = new LatLng(latitude, longitude);

}

CameraPosition position = CameraPosition.fromLatLngZoom(latLng, 8)
// Zoom in the Google Map
googleMap.moveCamera(CameraUpdateFactory.newCameraPosition(position));