android studio高德地图如何申请keykey怎么用

请问android studio在哪设置keystore 的路径??急求,多谢!_百度知道
请问android studio在哪设置keystore 的路径??急求,多谢!
在做微信分享功能,运行demo需要设置keystoremac,android studio
我有更好的答案
菜单Build-&Generate Signed APK-&选择打包的module-&配置keystore信息-&OK,这种打包方式我发现一个问题,就是它不会进行proguard代码混淆,直到现在也不清楚原因.希望能帮到你!
采纳率:74%
来自团队:
为您推荐:
其他类似问题
android的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Android Studio中找到项目的密匙数字证书(MD5和SHA1)配置高德地图Android地图SDK【高德地图使用】
1.Android Studio中找到密匙数字证书(MD5和SHA1)
2.Android Studio中配置高德地图Android地图SDK
3.Android Studio中实现高德地图的使用【标记,以标记为中心显示地图,app中调用高德地图进行导航】
4.Android Studio打包relase版APK时(签名),需在配置地图中使用签名文件(.jks)的SHA1。
一、找数字证书步骤:
1.点Android Studio右侧的gradle
2.点击栏目上的刷新图标
3.点击":app" → “Tasks” → “android” → “signingReport”
二、Android studio中配置高德地图的Android地图SDK
步骤如下:【这里只用了3D地图】
1.下载高德地图Android地图SDK()
2.解压后得到下图中的1个文件夹和1个jar文件
3.将jar文件复制到项目app下的libs(作为libs的下一级文件)
4.在src下面的main目录上右键new → Directory → 起名为“jniLibs”【必须这么取名】,之后将解压得到的armeabi整个复制到jniLibs下,层级结构见下图:
高德地图的简单使用【第三方app调出高德地图进行导航】
&span style="font-size:14"&import android.app.AlertD
import android.content.C
import android.content.DialogI
import android.content.I
import android.graphics.C
import android.os.B
import android.support.v7.app.AppCompatA
import android.text.TextU
import android.util.L
import android.view.animation.A
import android.view.animation.LinearI
import android.view.animation.RotateA
import android.widget.EditT
import android.widget.TextV
import android.widget.T
import com.amap.api.maps.AM
import com.amap.api.maps.AMapO
import com.amap.api.maps.CameraU
import com.amap.api.maps.CameraUpdateF
import com.amap.api.maps.LocationS
import com.amap.api.maps.MapV
import com.amap.api.maps.UiS
import com.amap.api.maps.model.BitmapDescriptorF
import com.amap.api.maps.model.CameraP
import com.amap.api.maps.model.C
import com.amap.api.maps.model.CircleO
import com.amap.api.maps.model.LatL
import com.amap.api.maps.model.M
import com.amap.api.maps.model.MarkerO
import java.io.F
import butterknife.BindV
import butterknife.ButterK
import butterknife.OnC
import static android.R.id.
* 获取地址对应的(纬度,经度)
* 【地址转坐标】
* 以标记点为中心显示地图
* 点击标记点弹出提示框【确认进入手机地图进行导航】
public class LocalInfoActivity extends AppCompatActivity {
@BindView(R.id.et_localinfo)
EditText etL
@BindView(R.id.tv_localinfo)
TextView tvL
private MapView mMapView =
private UiSettings uiS//用于设置地图显示信息
private AMap aM//定义一个地图对象
private LatLng latL//地图坐标点(纬度,经度)
private M//地图标记
private MarkerOptions markerO//标记配置
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_local_info);
ButterKnife.bind(this);
showMap(savedInstanceState);//显示地图
initMapOptions();//配置地图信息
showMapFromLatlang();//以新的坐标点为中心显示地图
addAMark();//添加坐标对应标记【添加标记点击事件】
drawACircle();//绘制一个圆饼
* 显示出地图
private void showMap(Bundle savedInstanceState) {
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.map_localinfo);
//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),实现地图生命周期管理
mMapView.onCreate(savedInstanceState);//到这里地图就可以显示出来【需实现生命周期的管理如下生命周期】
* 配置地图信息
* “+ -”号是否可用【是否显示】
* 指南针是否显示
* 默认定位按钮
* 缩放比例和高德地图Logo
* 旋转手势不可用
* 设置定位监听
private void initMapOptions() {
latLng = new LatLng(30..060000);//实例化地图坐标点
aMap = mMapView.getMap();
uiSettings = aMap.getUiSettings();
uiSettings.setScaleControlsEnabled(true);//显示比例尺控件
uiSettings.setZoomControlsEnabled(true);//设施“+ -”是否可以用来控制地图放大倍数
uiSettings.setCompassEnabled(true);//控制指南针是否显示
uiSettings.setMyLocationButtonEnabled(true); // 显示默认的定位按钮
uiSettings.setLogoPosition(AMapOptions.LOGO_POSITION_BOTTOM_LEFT);//设置logo位置【左下角】
uiSettings.setRotateGesturesEnabled(false);//设置旋转手势——不能通过手势来旋转地图
* 定位监听,这里没用到
aMap.setLocationSource(new LocationSource() {//设置定位监听
public void activate(OnLocationChangedListener onLocationChangedListener) {
public void deactivate() {
});// 设置定位监听
aMap.setMyLocationEnabled(true);// 可触发定位并显示定位层
* 设置新的中心点
* 新的缩放级别【aMap.moveCamera(CameraUpdateFactory.zoomTo(17));//将地图的缩放级别调整到17级】
private void showMapFromLatlang() {
CameraUpdate cameraupdate = CameraUpdateFactory.newCameraPosition(new CameraPosition(
latLng,//新的中心点坐标
16, //新的缩放级别
30, //俯仰角0°~45°(垂直与地图时为0)
////偏航角 0~360° (正北方为0)
aMap.moveCamera(cameraupdate);//将显示地图移动到新的中心点来显示
* 在一个坐标上添加标记&span style="white-space:pre"& &/span&//清除标记点用aMap.clear()
private void addAMark() {
markerOptions = new MarkerOptions();
markerOptions.position(latLng);//设置纬度,经度
markerOptions.title("成都");//标题
markerOptions.draggable(true);//标记可拖动【拖动失败】
markerOptions.visible(true);//点标记是否可见
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_nomal));//设置标记图标
marker = aMap.addMarker(markerOptions); //获得标记对象(需要使用aMap将标记配置添加到地图后才能生成对应的标记对象)
marker.setRotateAngle(0);//设置倾斜度数(0-360[正负])
* 添加标注点击事件【弹出框确认后进入高德地图导航】
aMap.setOnMarkerClickListener(new AMap.OnMarkerClickListener() {
public boolean onMarkerClick(Marker marker) {
AlertDialog dialog = new AlertDialog.Builder(LocalInfoActivity.this)
.setTitle("系统提示")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//判断是否已安装高德地图app
if(isInstallByRead("com.autonavi.minimap")){
//下方传入的坐标值需改为你想要去的地方的坐标
goToNaviActivity(LocalInfoActivity.this,"test",null,"30.670000","104.060000","1","2");
Toast.makeText(LocalInfoActivity.this,"请先安装高德地图app",Toast.LENGTH_SHORT).show();
.setNegativeButton("取消",null)
.setMessage("是否启动高德地图进行导航?")
* 以坐标点为中心画一个圆饼
private void drawACircle() {
aMap.addCircle(new CircleOptions().
center(latLng).
radius(200).//范围200米
fillColor(Color.argb(progress, 1, 1, 1))//填充色
.strokeColor(Color.argb(progress, 1, 1, 1))//边框色
.strokeWidth(15));
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView.onResume (),实现地图生命周期管理
mMapView.onResume();
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView.onPause (),实现地图生命周期管理
mMapView.onPause();
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),实现地图生命周期管理
mMapView.onSaveInstanceState(outState);
@OnClick(R.id.btn_localinfo)
public void onClick() {
* 配置导航的信息【调用手机已安装的高德地图】
* @param context
* @param sourceApplication 必填 第三方调用应用名称。如 amap
* @param poiname
* @param lat 必填 纬度
* @param lon 必填 经度
* @param dev 必填 是否偏移(0:lat 和 lon 是已经加密后的,不需要国测加密; 1:需要国测加密)
* @param style 必填 导航方式(0 速度快; 1 费用少; 2 路程短; 3 不走高速;4 躲避拥堵;5 不走高速且避免收费;6 不走高速且躲避拥堵;7 躲避收费和拥堵;8 不走高速躲避收费和拥堵))
public static
void goToNaviActivity(Context context, String sourceApplication , String poiname , String lat , String lon , String dev , String style){
StringBuffer stringBuffer
= new StringBuffer("androidamap://navi?sourceApplication=")
.append(sourceApplication);
if (!TextUtils.isEmpty(poiname)){
stringBuffer.append("&poiname=").append(poiname);
stringBuffer.append("&lat=").append(lat)
.append("&lon=").append(lon)
.append("&dev=").append(dev)
.append("&style=").append(style);
Intent intent = new Intent("android.intent.action.VIEW", android.net.Uri.parse(stringBuffer.toString()));
intent.setPackage("com.autonavi.minimap");
context.startActivity(intent);
* 根据包名检测某个APP是否安装
* @param packageName 包名
* @return true 安装 false 没有安装
public static boolean isInstallByRead(String packageName) {
return new File("/data/data/" + packageName).exists();
}&/span&&span style="font-size: 24"&
&/span&高德地图定位:【注意权限】配置服务:
&service android:name="com.amap.api.location.APSService"&&/service&配置定位://定位【获取当前位置坐标(纬度,经度)】
private void getLoacation() {
mlocationClient = new AMapLocationClient(this);
//初始化定位参数
mLocationOption = new AMapLocationClientOption();
//设置定位监听
mlocationClient.setLocationListener(this);
//设置定位模式为Hight_Accuracy高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
//设置定位间隔,单位毫秒,默认为2000ms
mLocationOption.setInterval(2000);
//设置定位参数
mlocationClient.setLocationOption(mLocationOption);
Log.e("---------","定位中...");
//启动定位
mlocationClient.startLocation();
//定位监听
public void onLocationChanged(AMapLocation amapLocation) {
Log.e("------","定位成功");
if (amapLocation != null) {
if (amapLocation.getErrorCode() == 0) {
//定位成功回调信息,设置相关消息
amapLocation.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表
double lat = amapLocation.getLatitude();//获取纬度
double lon = amapLocation.getLongitude();//获取经度
Log.e("------","("+lat+":"+lon+")");
amapLocation.getAccuracy();//获取精度信息
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(amapLocation.getTime());
df.format(date);//定位时间
//显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。
Log.e("------AmapError", "location Error, ErrCode:"
+ amapLocation.getErrorCode() + ", errInfo:"
+ amapLocation.getErrorInfo());
调用百度地图进行导航:
* 调用百度地图导航
* 使用百度地图导航需注意:需要传入出发点的名字|坐标
public void goToBaiduMap(Context context) {
* 查看下面网址有详细的使用说明
* http://developer.baidu.com/map/uri-intro.htm#idmykey37
//调起百度PC或Web地图,展示“西安市”从(lat:34.,lng:108. )“我家”到“大雁塔”的驾车路线。
String gole = "intent://map/direction?" +
"origin=latlng:30..060000|name:我的坐标" +//传入自己的坐标【这里是模拟坐标】name属性不要好像会不开启导航
"&destination=天府广场" +
//目的地名称
"&mode=driving(R)ion=成都市" +
//所在城市
"&referer=Autohome" +
"|GasStation#I" +
"scheme=" +
//固定为bdapp
"package=com.baidu.BaiduM" +
"end";//结束标志
Intent intent = Intent.getIntent(gole);
context.startActivity(intent);
} catch (URISyntaxException e) {
e.printStackTrace();
&?xml version="1.0" encoding="utf-8"?&
&RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_local_info"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.liu.ditu.LocalInfoActivity"&
&com.amap.api.maps.MapView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map_localinfo"
&&/com.amap.api.maps.MapView&
&LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
&LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"&
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:textSize="20sp"
android:layout_marginLeft="50dp"
android:layout_gravity="center_vertical"
android:id="@+id/et_localinfo"/&
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/btn_localinfo"
android:layout_gravity="center_vertical"
android:text="提交"
&/LinearLayout&
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="5dp"
android:textSize="18sp"
android:id="@+id/tv_localinfo"
&/LinearLayout&
&/RelativeLayout&
地图效果:
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!修改android keystore密码别名供调试使用 - 简书
修改android keystore密码别名供调试使用
之前在测试Eclipse ADT的Custom debug keystore自定义调试证书的时候,发过一篇关于调试证书规格的博文:Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和alias命名以及alias密码都是有规矩的。其实Android应用开发接入各种SDK时会发现,有很多SDK是需要靠package name和keystore的指纹hash来识别的(百度地图SDK、Facebook SDK等等…),这样如果使用默认自动生成的debug keystore的话就会给开发调试工作带来一些麻烦。这时可以通过修改正式的release keystore,生成一份“遵守规矩”的临时自定义调试证书给开发时用,就方便多了,具体方法如下:1. 首先当然是先复制一份正式证书出来作为要修改为的临时调试证书。2. 修改keystore密码的命令(keytool为JDK带的命令行工具):keytool -storepasswd -keystore my.keystore其中,my.keystore是复制出来的证书文件,执行后会提示输入证书的当前密码,和新密码以及重复新密码确认。这一步需要将密码改为android。3. 修改keystore的alias:keytool -changealias -keystore my.keystore -alias my_name -destalias androiddebugkey这一步中,my_name是证书中当前的alias,-destalias指定的是要修改为的alias,这里按规矩来,改为androiddebugkey!这个命令会先后提示输入keystore的密码和当前alias的密码。4. 修改alias的密码:-destalias androiddebugkey my.keystore -alias androiddebugkey这一步执行后会提示输入keystore密码,alias密码,然后提示输入新的alias密码,同样,按规矩来,改为android!以上几个操作执行后,my.keystore就是符合规矩的debug keystore了,接着在Eclipse的ADT设置中选中这个custom debug keystore即可,同时还可以看到证书的MD5以及SHA1指纹。** PS:以上3步命令行并没有先后顺序。**key.alias= 别名 此别名一开始以为可以随便写,后来多次尝试发现乱写打包一定不成功,此别名要与第一次生成签名时的别名一至,由于签名不是我申请的,申请签名的同事也忘记了签名的别名,如此只好找工具看一下签名的信息了,其实工具不用找了,在jdk中有直接keytool -list
-v -keystore xxxx.keystore -storepass 密码  签名的信息就有了
服务器https配置 配置https操作说明文档 1、查看服务器环境配置(tomcat和apache合并使用) 2、先链接服务器ssh -t root@ip 3、服务器Apache路径 :/opt/gitlab-8.13.3-0/apache2 tomcat路径:/home...
参考什么是 Android 签名机制,Bluebox Security 发现的漏洞有何威胁? Android应用程序签名详解Android Studio如何打包签名 一些恶意开发者会采用反编译重新编译的方法来给各种应用夹带私货然后偷偷上传到各个渠道等着小白鼠自己上钩,比如我...
前言 目前主流的android开发工具是Android Studio,当然也不乏还有开发者使用eclipse。各有利弊,看个人喜好。当时从eclipse转到AS的时候,稍稍有点不习惯,但是用惯了AS,再也回不去了,谁用谁知道。坑D的事情来了,以前的一个老的项目使用的是ecl...
写在前面 今天使用高德地图为应用添加Key的时候,发现有一项需要用到安全码SHA1,而SHA1存在于Keystore中,遂简单地了解了一下Keystore。虽然之前实习开发中有用同事生成的Keystore对应用加过密,但是对它并不熟,今天以此文对Keystore的认识做一个...
Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名和数字证书 Android安全加密:Https编程 一、数字签名 1. 概...
话说,一个店铺的开张到关门,都离不开“运营”两字,运营部分,不单单只是指产品类和营销策划方式而已,“服务”也算运营中的一部分。 说到服务,当然离不开“顾客”了,而我们究竟该如何拉进与顾客的关系呢? 一般的茶饮店开起来以后,大多数的我们都会把重心偏向于产品,往往把“服务”给落...
说到LPL已经有太多说不完的话题了。 但是我在今天又找到了一个崭新的话题。 那就是在我们LPL选手的个人能力是非常突出的。 拥有着很多的明星选手。 但一说到团队配合方面。 在我们LPL,一共就两支队伍的配合我感觉还过得去。 一支WE,一支EDG,一支OMG,就这两支队伍。 ...
【公司】宁波慈星有限公司 【姓名】张颖 【组别】235期六项精进【乐观二组】 【日精进打卡第96天】 【知~学习】 《六项精进》大纲1遍共计74遍,《活法》诵读 通篇0遍共计32遍 《大学》0遍共计53遍 《弟子规》2遍共计83遍 【行~实践】 休息 【齐家】 1,一家人在...走牛B的路,让傻B说去吧 !
Android一步一步教你集成高德地图
转载请注明出处:
当项目中需要使用地图SDK的时候, 是选择高德地图还是百度地图呢?从对开发者友好角度,从容易上手角度:高德完胜百度! 所以我们公司的项目也选择了高德地图。好了!下面就开始高德地图的集成吧!
一,账号与Key的申请
注册成为高德开发者需要分三步:
第一步,注册高德开发者;第二步,去控制台创建应用;第三步,获取Key。
前2步都比较简单,这里说下第三步。
1、进入控制台,创建一个新应用。如果您之前已经创建过应用,可直接跳过这个步骤。
2、 在创建的应用上点击”添加新Key”按钮,在弹出的对话框中,依次:输入应用名名称,选择绑定的服务为“Android平台SDK”,输入发布版安全码
SHA1、调试版安全码 SHA1、以及 Package,如下图所示:
获取SHA1见:
二,Android Studio 配置工程
配置工程前需要到官网下载高德SDK
注意:这里根据项目需求选择下载,如果不需要导航,定位就用默认的即可。(这样可以大大减小包的体积)如图:
下载后会得到如图所示压缩包
第1步:添加 jar 包
将下载的地图 SDK 的 jar包复制到工程的 libs 目录下,如果有老版本 jar 包在其中,请删除。如图所示:
第2步:添加 so 库
说明:3D地图才需要添加so库,2D地图无需这一步骤。
在 main 目录下创建文件夹 jniLibs (如果有就不需要创建了),将下载文件的 armeabi 文件夹复制到这个目录下,如果已经有这个目录,将下载的 so 库复制到这个目录即可。如图所示:
第3步:在清单文件中配置高德 Key
android:icon="@drawable/icon"
android:label="@string/app_name" &
android:name="com.amap.api.v2.apikey"
android:value="请输入您的用户Key"/&
第4步:在清单文件中配置权限:
android:name="android.permission.INTERNET" /&
android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
android:name="android.permission.ACCESS_NETWORK_STATE" /&
android:name="android.permission.ACCESS_WIFI_STATE" /&
android:name="android.permission.READ_PHONE_STATE" /&
android:name="android.permission.ACCESS_COARSE_LOCATION"&&
android:name="android.permission.ACCESS_FINE_LOCATION"&&
android:name="android.permission.CHANGE_WIFI_STATE"&&
android:name="android.permission.READ_PHONE_STATE"&&
android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"&&
好了!到这里高德地图集成就全部完成了!接下来验证我们集成的是否正确!
1,首先在布局xml文件中添加地图控件:
&com.amap.api.maps.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"&
&/com.amap.api.maps.MapView&
2, 在activity的onCreate()方法中添加如下代码就能看到高德地图了!
MapView mapView = (MapView) findViewById(R.id.map)
//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
mapView.onCreate(savedInstanceState)
AMap aMap = mapView.getMap()
大功告成!集成高德地图就是这么简单!
如果对你有帮助点个赞支持下吧!
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 高德key 的文章

 

随机推荐