Tag: 安卓

Google Play警告和“X509TrustManager的不安全实施”

我们收到了有关“您正在使用X509TrustManagfer的不安全实施”的邮件。 要解决此问题,我们已应用http://transoceanic.blogspot.in/2011/11/android-import-ssl-certificate-and-use.html中的解决方案 这里我们生成了新的BKS密钥库并传递了这个密钥库SSLSocketFactory。 该工厂负责validation服务器证书。 我们已经存在Keystore但它不是.BKS格式。 这就是为什么我们为特殊的HTTPS调用创建了新的。 请查看我的以下代码: DefaultHttpClient sslClient = new MyHttpClient(StartupActivity.activity); public class MyHttpClient extends DefaultHttpClient { final Context context; public MyHttpClient(Context context) { this.context = context; } @Override protected ClientConnectionManager createClientConnectionManager() { SchemeRegistry registry = new SchemeRegistry(); registry.register(new Scheme(“http”, PlainSocketFactory .getSocketFactory(), 80)); // Register for port 443 our SSLSocketFactory with our keystore // […]

融合位置提供商:有没有办法检查位置更新是否失败?

介绍 在我的应用程序中,我希望获得用户当前所在位置的一次性准确位置。 当我使用FusedLocationProviderApi.getLastLocation有时这将是null或过时位置,因为我发现这只是获取缓存位置并且不请求新的位置更新。 解决方案是仅请求位置更新一次,如下所示。 LocationRequest locationRequest = LocationRequest.create() .setNumUpdates(1) .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY) .setInterval(0); LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,locationRequest,this) 现在我总是得到一个更准确的位置。 我的问题 如何确定位置更新是否失败? 因为我只要求1。 获取位置更新时,将调用此回调 @Override public void onLocationChanged(Location location) { } 但是,如果位置更新失败,则不会调用此方法。 我试过的 我看到有一个ResultCallback。 但是,即使一次性位置更新失败,也始终会调用onSuccess。 LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,locationRequest,this).setResultCallback(new ResultCallbacks() { @Override public void onSuccess(@NonNull Status status) { DebugUtils.log(“requestLocationUpdates ResultCallback onSuccess + ” + status.toString(),true,true); } @Override public void onFailure(@NonNull Status status) { DebugUtils.log(“requestLocationUpdates ResultCallback […]

如何在Android Studio中手动安装App Engine?

我刚刚将App Engine模块添加到我的应用程序中,在同步时,gradle开始从maven下载App Engine zip。 App Engine的zip文件大约150mb +并且使用maven自动下载它非常慢,所以我决定手动下载appengine java sdk(appengine-java-sdk-1.9.6.zip)并手动安装它。 我现在有拉链,但我在哪里放置它以便Android Studio(0.8.1)选择并安装它而不是尝试从maven的存储库下载它? 谢谢!

如何禁用相同布局的按钮之间的交互?

我有两套布局,用按钮填充。 有没有办法禁用相同布局的按钮之间的任何交互? 当我点击一个按钮然后从同一个布局中点击另一个按钮时,我不需要发生任何事情。 对于属于上下布局的按钮,我用“和”标记每个按钮。 我有5种。 我有一些相互作用beetwen按钮的oposite布局,并且工作正常(实际上交互在任何两个给定按钮之间工作正常,这很糟糕),但我不希望相同布局的按钮之间的交互。 这是我的游戏课程,而不是全部,只是重要的部分。 此外,我删除了其余按钮的代码,只留下4个按钮,每个布局2个,以节省一些空间。 我从sqlite数据库导入一些文本,并随机将其设置为我的按钮。 final OnClickListener clickListener = new OnClickListener() { private Button buttonClicked; public void onClick(View v) { Button button = (Button) v; button.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x003333)); if (buttonClicked == null) { // first button is clicked buttonClicked = button; } else { // second button is clicked if (buttonClicked.getTag().equals(button.getTag())) […]

使用Google的Firebase UI身份validation失败并显示消息(代码:10消息:10)

我制作了一个使用FirebasefunctionReal-time database的聊天应用。 我遇到了谷歌身份validation的问题。 当我从Play商店下载应用程序时,问题就出现了,当我在调试模式下运行应用程序时,身份validation工作正常。 当用户尝试登录时,他们会收到一个Toast消息code:10 message:10 。 我想在此注意:我添加了SHA1指纹。 我怎么解决这个问题? *不确定这是否有用,但我已按照本教程的步骤进行操作

如何在Android上使用gps输出位置

我试图将位置输出到textview。 我使用了locationManager.toString(),但它只给我输出android.location.LocationManager@44ee7718。 我想输出像洛杉矶,CA 90501这样的位置。 LocationManager的代码: LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); //conversion Criteria criteria = new Criteria(); String bp = lm.getBestProvider(criteria, false); Location location = lm.getLastKnownLocation(bp); double lat = location.getLatitude(); double lon = location.getLongitude(); Geocoder gc = new Geocoder(this, Locale.getDefault()); List addresses = null; try{ addresses = gc.getFromLocation(lat, lon, 1); } catch (IOException e) { // […]

如何设置文本一个整数并得到int而不会出错

我试图从整数中获取意图。 字符串获取意图工作正常并显示良好,但当我把整数我得到一个强制关闭错误。 package kfc.project; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.EditText; import android.widget.TextView; public class productdetail extends Activity{ @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.productdetail); //stuff to get intent Intent receivedIntent = getIntent(); String productName = receivedIntent.getStringExtra(“name”); int productCalories = receivedIntent.getIntExtra(“calories”,0); Bundle extras = getIntent().getExtras(); String name = extras.getString(“name”); if (name != null) […]

一次登录应用程序 – FirebaseAuth

我正在开发一款使用Firebase身份validation通过电话号码登录用户的应用。 我想添加一个function,使用户只有一次性登录,即使用户杀死应用程序并再次启动它,他应该登录。此外,我不想添加注销function。 可以做些什么呢?

Java无法在未调用Looper.prepare()的线程内创建处理程序

我看到了大部分相关问题,但我找不到任何解决问题的方法。 这是我的代码,我不知道我做错了什么。 static class NamedFile { public File f; public String name; public String ext; public String path; public BitmapDrawable icon; public NamedFile (File file) { f = file; name = f.getName(); if (f.isFile()) { if (name.indexOf(‘.’) != -1) { ext = name.substring(name.lastIndexOf(‘.’) + 1).trim().toLowerCase(); } else { ext = “unknown”; } } path = […]

如何在Android onMediaButtonEvent中收听“ACTION_DOWN”(按下键)事件,以便测量时间?

我试着获得时间System.currentTimeMillis() ,而不是用户按下媒体按钮。 但是当媒体按钮再次上升时执行回调action == KeyEvent.ACTION_UP 。 我不想在我的解决方案中使用BroadcastReceiver。 这是我的代码: MediaSession audioSession = new MediaSession(getApplicationContext(), “TAG”); audioSession.setCallback(new MediaSession.Callback() { @Override public boolean onMediaButtonEvent(final Intent mediaButtonIntent) { String intentAction = mediaButtonIntent.getAction(); if (Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) { KeyEvent event = (KeyEvent)mediaButtonIntent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (event != null) { int action = event.getAction(); if (action == KeyEvent.ACTION_DOWN) { long stopTimeOfGame_millis = System.currentTimeMillis(); UtilsRG.info(“time stopped: […]