我有一个应用程序,其中包含Android和iPhone的版本.所以我有两个URL(市场和AppStore),但我不想在主页上添加两个不同的QR码.有没有办法(我希望在线服务)为这两个市场提供单一的URL,这将检测用户设备并立即转发到合适的应用程序版本?程序上看起来非常简单,但也许有人已经解决了这个问题.
更新:似乎我必须自己创建服务.您也可以尝试使用它:http://qrappdownload.appspot.com/.您可以提供两个URL-s,它会为URL生成QR核心,这对于两个最大的平台是通用的.通用URL由基于移动用户代理的相同服务解析(仅检查它是否包含Apple或Android字符串).缺点是QR码必须非常大,因为URL必须包含两个appstore URL,因此非常长.也许你可以通过一些URL缩短服务缩短URL,没有尝试过.
我得到ValueError:无法将float NaN转换为整数以用于以下内容:
df = pandas.read_csv('zoom11.csv')
df[['x']] = df[['x']].astype(int)
Run Code Online (Sandbox Code Playgroud)
更新:使用评论/答案中的提示我将数据清理干净:
# x contained NaN
df = df[~df['x'].isnull()]
# Y contained some other garbage, so null check was not enough
df = df[df['y'].str.isnumeric()]
# final conversion now worked
df[['x']] = df[['x']].astype(int)
df[['y']] = df[['y']].astype(int)
Run Code Online (Sandbox Code Playgroud) 通过服务器检测Android的明显方法是从User-Agent HTTP标头中搜索"Android"字符串.但是 - 我曾经抱怨这在某些设备上不起作用(例如在我的HTC Evo中),它们没有被检测为Android.whatsmyuseragent.com为我的HTC Evo 3D网页浏览器提供:Mozilla/5.0(X11; Linux x86_64)AppleWebKit/534.24(KHTML,如Gecko)Chrome/11.0.696.34 Safari/534.24.没有Android字符串或版本.它可能是设备上的一个安全软件,它改变它,或HTC特定的问题,不确定它.
显然,同一台设备上的Android Chrome还有另一个,更好的UA:Mozilla/5.0(Linux; Android 4.0.3; HTC EVO 3D X515m Build/IML74K)AppleWebKit/535.19(KHTML,像Gecko)Chrome/18.0.1025.166 Mobile Safari/535.19,但我不能只希望例如二维码阅读器应用程序打开Chrome而不是内置的Android浏览器,它具有无效的UA.
是否有一个很好的技巧(javascript调用?)可以跨设备和浏览器可靠地检测Android?
编辑:看起来与Galaxy S III相同的问题,相同的用户代理字符串:Android手机浏览器检测
我没有进行过广泛的测试,但有证据表明应用程序清单中的android.permission.ACCESS_MOCK_LOCATION不能正常工作(即,如果存在 - 允许模拟位置提供程序,否则不行).因此,https://play.google.com/store/apps/details? id = com.lexa.fakegps 这样的假GPS应用程序可以与任何应用程序一起使用,无论它是否设置了ACCESS_MOCK_LOCATION.如果用户在设备设置中允许虚假位置,这似乎就足够了.
也许ACCESS_MOCK_LOCATION真的意味着应用程序可以自己模拟位置提供程序?如果是这样,那么它应该更像WRITE_MOCK_LOCATION,而不是名称所暗示的访问(读取).听起来更像是bug而不是功能.如果这是真的,那么就没有办法真正确保GPS位置是真实的,而不是假的?
我想在Android上使用Spatialite而不是简单的SQLite和Xamarin来管理和显示地理数据.内置的SQLite不允许加载扩展.我该怎么做?
我的应用程序需要至少 40MB 的 RAM,所以早期的 iPhone(如 3G,第一个 iPod touch 版本)没有它(他们的应用程序最多有大约 20MB)。有没有正确的方法可以禁用将其安装到 3G 设备?我知道 UIRequiredDeviceCapabilities,但它没有最小可用内存的参数。
参考这个网站,我建立了MapActivity以下内容:
public class MainActivity extends Activity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.map);
mapView.setComponents(new Components());
RasterDataSource datasource = new PackagedRasterDataSource(new EPSG3857(), 11, 12, "t{zoom}_{x}_{y}", getApplicationContext());
RasterLayer mapLayer = new RasterLayer(datasource, 16);
mapView.getLayers().setBaseLayer(mapLayer);
mapView.setFocusPoint(mapView.getLayers().getBaseLayer().getProjection().fromWgs84(47.0f, 9.0f));
//mapView.setZoom(15);
}
@Override
protected void onStart(){
super.onStart();
mapView.startMapping();
}
@Override
protected void onStop(){
mapView.stopMapping();
super.onStop();
}
}
Run Code Online (Sandbox Code Playgroud)
我已将瓷砖放在我的res/raw文件夹中,但是没有显示任何内容.有什么我想念的吗?根据教程,它必须显示一些东西.我还可以提供什么来调试它?xml是一个简单MapView的width和height.