问一个android6.0动态申请权限的问题

我知道android6.0动态申请权限是跟三个方法有关

checkSelfPermission,requestPermissions,shouldShowPermissionRationale

当用户点了不再提示按钮并拒绝授予权限后,shouldShowPermissionRationale方法返回flse,此时表明这个权限应该是拿不到了,除非去设置里改

但我无法理解的是QQ的录音功能
如图

我在第一次点录音时弹出提示,直接拒绝并且不勾选“不再提示按钮”
第二次点录音时弹出提示,我再次拒绝并且勾选了“不再提示”按钮

按正常逻辑,此后再申请权限系统应该会直接拒绝,所以QQ弹出了一个自己的对话框叫我们去开启

这里我就不懂了,QQ是如何做到惦记开启按钮,就直接获得了权限的,按道理来说requestPermissions此时不是应该一直拒绝吗?

诡异的是QQ的照相功能在被拒绝之后就没有这种选项,只能在设置里打开图片图片图片

2个回答

应该保存了个标记!…………

在你点录音的时候,QQ会判断权限,发现没权限,就会弹出窗口提示你给予权限。

大概理解。

qq_28901231
qq_28901231 回复qq_28901231: 按正常的逻辑,此时应该是拿不到的,都是要用户去设置里面手动开启的。这是我的理解。
2 年多之前 回复
qq_28901231
qq_28901231 回复qq_28901231: 我刚刚又测试了一下,在我不勾选“不再提示”按钮并拒绝之后,此时系统显示QQ的录音权限仍然是询问,勾选“不再提示”并拒绝之后,系统显示QQ的录音权限是禁止,此时我再点击录音,QQ就会弹出自己的对话框,然后点击启用按钮,QQ就获得了录音权限。。
2 年多之前 回复
qq_28901231
qq_28901231 回复Q544471255: 此时不管怎么调用requestPermissons系统都会自动返回请求权限失败 QQ好像是在请求返回权限失败的时候判断了shouldShowPermissionRationale方法返回的是true还是false,如果为true说明用户没有点击不再提示按钮,如果为false说明用户点击了不再提示按钮,此时弹出自定义对话框提示用户,就是上面的图3,我难以理解的是为什么此时用户点击启用,不跳转设置界面打开权限,他就可以直接开启了录音权限
2 年多之前 回复
qq_28901231
qq_28901231 回复Q544471255: 不是这个 当我点击了“不再提示”按钮后,此时shouldShowPermissionRationale方法返回的就是false了,一般应用的处理逻辑是这个方法返回true的时候弹出dialog,告诉用户为什么请求权限,并在点击确定按钮之后调用requestPermissions获取权限(此时该方法还可以调出系统对话框让用户点击是否允许),但是当用户点了不再提示以后,shouldShowPermissionRationale就会返回false了,此时不论你怎么调用requestPermisson是
2 年多之前 回复
dcxy0
Q544471255 回复qq_28901231: 看下是这个不:http://blog.csdn.net/qq_33689414/article/details/52650803
2 年多之前 回复
qq_28901231
qq_28901231 你没懂我意思,判断有没有权限很简单 我想问的是QQ判断我不给他权限之后弹出了一个窗口,这个窗口的开启按钮在我点击以后他就获得了录音权限 注意,没有跳转设置界面 这里我不理解,此时他是如何获得了录音权限的
2 年多之前 回复
dcxy0
Q544471255 虽然可以不再提醒,但QQ不用官方的提醒,自己写个不就行了?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android 6.0在设置取消权限造成对象和数据被回收
我想为现在的app添加上6.0的权限动态申请,但是我发现,将targetsdkversion改为23以后,app在后台的情况下,用户在设置中取消或者修改某个权限会使整个app的对象和数据被回收,并且没有走任何的方法,在回到页面的时候就会造成空指针异常,这个问题要怎么解决,急!
关于android6.0在美图手机上动态申请录音权限和摄像机权限或不能准确判断权限是否拿到的问题
本人在开发中 使用了一个常规的手段去动态申请录音和摄像机的权限,在其他手机能够正常的弹出录音和摄像机权限的允许或者拒绝框,而且能够正常申请到权限。但是在美图手机上面出现了 弹框能够弹出,也能够点击允许,但是在他们手机系统自带的权限管家中看到权限还是询问的状态。其二就是,我去判断权限是否获取到了,在美图手机是拿不到的 一直提示权限已经拿到,但是在其他手机上都能够拿到正确的。请问这个问题是什么问题?
【android】无屏幕设备如何应对动态权限申请
android6.0+ 要求危险权限要动态申请。 如果设备没有屏幕,怎么动态申请....
videoView在android6.0上无法播放视频,但在8.0手机上可以
通过videoView播放rstp,在8.0的手机上通过自带的videoView或者vitamio的videoView都可以播放,但是到6.0的平板上安装,一进去就提示 无法播放此视频。 怎么破? 网络权限申请了,读写权限也静态动态申请了 代码如下: ![图片说明](https://img-ask.csdn.net/upload/201904/11/1554970523_515826.jpg)
android 6.0之后锁屏一段时间搜索不到beacon设备
最近做一款beacon相关的应用,我知道6.0之后搜索ble设备需要动态申请权限。我在activity申请权限的代码如下 @Override protected void onResume() { super.onResume(); Log.e("ScanActivity", "onResume方法"); //判断 当前android版本大于6.0 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (this.checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { Log.e("onResume","申请权限"); requestPermissions(new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_COARSE_LOCATION); }else { startBeaconService(); } }else { startBeaconService(); } } //判断网络是否可用 public boolean isGpsEnable(final Context context) { LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); if (gps || network) { return true; } Toast.makeText(getApplicationContext(), "网络不可用",Toast.LENGTH_SHORT).show(); return false; } //回调权限 @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case PERMISSION_REQUEST_COARSE_LOCATION: if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (!isGpsEnable(this)){ Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivityForResult(intent,100); }else { ScanActivity.this.finish(); Intent startIntent = new Intent(this, ScanActivity.class); startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startIntent); startBeaconService(); } } else { super.onRequestPermissionsResult(requestCode, permissions, grantResults); } break; } } ``` ``` 在使用该应用时可以正常搜索到beacon设备,但离开应用或者锁屏一段时间后,有的手机就开始搜索不到设备了,比如小米锁屏一分多钟后无法搜索到设备,点开屏幕再次聚焦到屏幕可以继续搜索。但华为、oppo之类的再次聚焦也不行,我关闭了搜索设备的activity和服务重新点开也不行,,,就是要把应用kill掉之后再打开应用才能再次搜索到设备。。。。 搜索设备的代码一直在跑,但检测不到beacon设备,因为6.0之后ACCESS_COARSE_LOCATION权限才能搜索到设备,而ACCESS_COARSE_LOCATION权限属于比较危险的权限,我猜测申请到这个权限然后是在离开应用一段时间后这个权限被系统收回去了所以无法搜索到设备。 有没有什么办法让这个权限不被系统收回?或者收回后如何再次申请又不会让用户有所感知,就是能到达持续搜索到设备的效果就好。我试过在连续几次搜索到的设备都是空的时候就开启1像素的activity在这里重新申请权限,但这个方法对小米有用,对华为没有用。
求救!Android 7.0 mediaplayer prepare 失败
04-27 08:55:32.305 3835-3940/com.lippi.hsrecorder E/MediaPlayer: error (1, -2147483648) 04-27 08:55:32.306 3835-3835/com.lippi.hsrecorder E/MediaPlayer: Error (1,-2147483648) 04-27 08:55:32.306 3835-3835/com.lippi.hsrecorder E/MediaPlayer: stop called in state 0, mPlayer(0xcc046780) 04-27 08:55:32.306 3835-3835/com.lippi.hsrecorder E/MediaPlayer: error (-38, 0) 这是我异步prepare得到的LOG,然而这个放到6.0 5.0 5.1 都没有问题,到7.0以上就不行了。 权限我加的下面三个: Manifest.permission.WRITE_EXTERNAL_STORAGE Manifest.permission.RECORD_AUDIO Manifest.permission.READ_EXTERNAL_STORAGE 都是监测到没有权限就会主动去申请的,而且在上面说的几个版本测试都没有问题。 一到7.0 就这个样子,真的很难受。 不知道有没有哪位大哥遇到过这样的问题?可否来指点一二?
安卓6.0版本,应用程序申请U盘的访问权限之后,U盘在系统中/dev/block/目录下的设备节点,被删除?
## 1. 环境:安卓6.0 通过USB口插入U盘(不是OTG口) ## 2. U盘的操作步骤 ### 1. 插入U盘,在设备节点/dev/block/目录下可以看到U盘的驱动设备节点 sda 和 sda1,如下图。 ![图片说明](https://img-ask.csdn.net/upload/201904/08/1554712721_103365.png) ### 2. 通过ES文件浏览器应用程序访问USB设备的权限申请之后,如下图的权限授权 ![图片说明](https://img-ask.csdn.net/upload/201904/08/1554712906_918423.png) ###3. 再查看/dev/block/目录,U盘的设备节点就被删除了,之前的U盘挂载路径也被删除了 ![图片说明](https://img-ask.csdn.net/upload/201904/08/1554713082_678593.png) 问题:目前项目需要用到U盘的额U盘的绝对路径,但是再跟文件系统中,怎么也找不到U盘的挂载路径,但是通过ES文件浏览器却可以看到U盘的所有内容,但是也查不出U盘的挂载路径信息? 希望各位对安卓这一块比较熟悉的大神和各位安卓大神,不吝赐教一下,我是坐Linux驱动的,对安卓懵逼一个,项目比较急,急求。。。
constrainLayout无法预览.render error
-failed to instantiate one or more classes java.lang.NoSuchFieldError: ConstraintLayout_Layout at android.support.constraint.ConstraintLayout.init(ConstraintLayout.java:440) at android.support.constraint.ConstraintLayout.<init>(ConstraintLayout.java:420) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:475) at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:262) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:220) at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:186) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:334) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:345) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:245) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) at android.view.LayoutInflater.inflate(LayoutInflater.java:495) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:368) at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:567) at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:549) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:863) at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:549) at com.android.tools.idea.rendering.RenderTask.lambda$inflate$1(RenderTask.java:680) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) gradle dependencies { final ANDROID_VERSION = '26.+' compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support.constraint:constraint-layout:1.0.2' compile "com.android.support:appcompat-v7:$ANDROID_VERSION" compile "com.android.support:recyclerview-v7:$ANDROID_VERSION" compile "com.android.support:design:$ANDROID_VERSION" compile "com.android.support:cardview-v7:$ANDROID_VERSION" compile "com.android.support:support-v4:$ANDROID_VERSION" compile "com.android.support:recyclerview-v7:$ANDROID_VERSION" compile "com.android.support:support-annotations:$ANDROID_VERSION" compile files('libs/eventbus-3.0.0.jar') // 支持 vector 图片资源 compile "com.android.support:support-vector-drawable:$ANDROID_VERSION" // ButterKnife compile 'com.jakewharton:butterknife:8.6.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0' // 权限申请 compile 'pub.devrel:easypermissions:0.4.2' // leakCanary 泄漏检测 final LEAKCANARY_VERSION = '1.5' debugCompile "com.squareup.leakcanary:leakcanary-android:$LEAKCANARY_VERSION" releaseCompile "com.squareup.leakcanary:leakcanary-android-no-op:$LEAKCANARY_VERSION" testCompile "com.squareup.leakcanary:leakcanary-android-no-op:$LEAKCANARY_VERSION" compile project(path: ':bzblibrary') }
android如何暂停主线程
我不知道我这种编程思维对不对,如果不对请各位指正。 Android6.0以上需要权限申请,在申请权限的时候用户没有点击授权或者拒绝,但是主线程一直在往下执行,我想在用户没点击授权或拒绝的时候暂停主线程的执行,等用户点击后再执行。我看的是主线程暂停5秒自动销毁,所以如果主线程不能暂停有其他办法实现这个吗?
关于高德地图绘制区域面的问题?有大神解答一下吗?
我的代码是这样的 ``` package com.chenxi.bimquanziguankong.activity; import android.Manifest; import android.content.Context; import android.content.Intent; import android.graphics.BitmapFactory; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.NonNull; import android.text.method.ScrollingMovementMethod; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.amap.api.location.AMapLocation; import com.amap.api.location.AMapLocationClient; import com.amap.api.location.AMapLocationClientOption; import com.amap.api.maps2d.AMap; import com.amap.api.maps2d.CameraUpdateFactory; import com.amap.api.maps2d.LocationSource; import com.amap.api.maps2d.MapView; import com.amap.api.maps2d.UiSettings; import com.amap.api.maps2d.model.BitmapDescriptorFactory; import com.amap.api.maps2d.model.LatLng; import com.amap.api.maps2d.model.Marker; import com.amap.api.maps2d.model.MarkerOptions; import com.amap.api.maps2d.model.MyLocationStyle; import com.amap.api.maps2d.model.PolygonOptions; import com.blankj.utilcode.util.ToastUtils; import com.chenxi.bimquanziguankong.R; import com.chenxi.bimquanziguankong.entity.ProjectInfo; import com.chenxi.bimquanziguankong.utils.LocationUtil; import java.util.ArrayList; import java.util.List; import pub.devrel.easypermissions.EasyPermissions; public class ProjectSurveyActivity extends BaseActivity implements LocationSource, EasyPermissions.PermissionCallbacks { private Context context; private ProjectInfo projectInfo;//从ProjectChooseActivity传过来的ProjectInfo private AMapLocationClient aMapLocationClient; private AMapLocationClientOption clientOption; private TextView projectSurvey; private ImageView back; private MapView mapView; private AMap aMap; private LocationSource.OnLocationChangedListener mListener = null;//定位监听器 private LocationUtil locationUtil; private String[] jiweiData; private double mlat, mlgt; private String Coordinate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_project_survey); //获取从ProjectChooseActivity传递过来的数据 Intent intent = getIntent(); projectInfo = (ProjectInfo) intent.getSerializableExtra("projectInfo"); Coordinate = projectInfo.getCoordinate(); Log.e("TAG", "噢噢噢噢 " + Coordinate); projectSurvey = findViewById(R.id.tv_project_survey); if (projectInfo.getDescription() != null) { projectSurvey.setText(projectInfo.getDescription());//概况描述 } projectSurvey.setMovementMethod(ScrollingMovementMethod.getInstance());//把TextView设置成可滑动 projectSurvey = findViewById(R.id.tv_project_survey); back = findViewById(R.id.toolbar_left_btn); back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); mapView = findViewById(R.id.project_survey_map); // 必须要写 mapView.onCreate(savedInstanceState); // 开启定位权限,并开始定位 if (EasyPermissions.hasPermissions(this, Manifest.permission.ACCESS_COARSE_LOCATION)) {//检查是否获取该权限 init(); } else { //第二个参数是被拒绝后再次申请该权限的解释 //第三个参数是请求码 //第四个参数是要申请的权限 EasyPermissions.requestPermissions(this, "定位需要定位权限", 0, Manifest.permission.ACCESS_COARSE_LOCATION); } } private void init() { if (aMap == null) { aMap = mapView.getMap(); } setLocationCallBack(); //设置定位监听 aMap.setLocationSource(this); //设置缩放级别 aMap.moveCamera(CameraUpdateFactory.zoomTo(17)); // 设置显示定位按钮 并且可以点击 UiSettings settings = aMap.getUiSettings(); // 是否显示定位按钮 settings.setMyLocationButtonEnabled(false); // 关闭一切手势操作 settings.setAllGesturesEnabled(true); // 是否显示缩放按钮 settings.setZoomControlsEnabled(false); MyLocationStyle myLocationStyle = new MyLocationStyle(); myLocationStyle.myLocationIcon(BitmapDescriptorFactory .fromResource(R.drawable.maplocation));// 设置小蓝点的图标 myLocationStyle.strokeColor(Color.argb(0, 0, 0, 0));// 设置圆形的边框颜色 myLocationStyle.radiusFillColor(Color.argb(0, 0, 0, 0));// 设置圆形的填充颜色 myLocationStyle.strokeWidth(0f);// 设置圆形的边框粗细 // myLocationStyle.anchor(int,int)//设置小蓝点的锚点 // getMap().setLatLonQuanVisible(false); aMap.getUiSettings().setCompassEnabled(false); aMap.setMyLocationStyle(myLocationStyle); aMap.getUiSettings().setMyLocationButtonEnabled(false);// 设置默认定位按钮是否显示 // aMap.setMyLocationType() //显示定位层并可触发,默认false aMap.setMyLocationEnabled(true); aMap.setMapType(AMap.MAP_TYPE_SATELLITE); // LatLng latLng = new LatLng(38.906901,116.397972); // final Marker marker = aMap.addMarker(new MarkerOptions().position(latLng).title("").snippet("DefaultMarker")); } private void setLocationCallBack() { if (Coordinate != null) { jiweiData = Coordinate.substring(2, Coordinate.length() - 2).split(","); Log.e("TAG", " qqqqqqqq" + jiweiData); mlgt = Double.parseDouble(jiweiData[0].substring(1)); mlat = Double.parseDouble(jiweiData[1].substring(0, jiweiData[1].length() - 1)); Log.e("TAG", " wwwww" + mlgt + "rrrrrrr" + mlat); LatLng latLng1=new LatLng(108.286888,22.8389); LatLng latLng2=new LatLng(108.284566,22.8354); LatLng latLng3=new LatLng(108.287462,22.838598); LatLng latLng4=new LatLng(108.287215,22.83846); LatLng latLng5=new LatLng(108.286952,22.838504); /* LatLng latLng1 = new LatLng(Double.parseDouble(jiweiData[0].substring(1)) , Double.parseDouble(jiweiData[1].substring(0, jiweiData[1].length() - 1))); LatLng latLng2 = new LatLng(Double.parseDouble(jiweiData[2].substring(1)), Double.parseDouble(jiweiData[3].substring(0, jiweiData[3].length() - 1))); LatLng latLng3 = new LatLng(Double.parseDouble(jiweiData[4].substring(1)) , Double.parseDouble(jiweiData[5].substring(0, jiweiData[5].length() - 1))); LatLng latLng4 = new LatLng(Double.parseDouble(jiweiData[6].substring(1)) , Double.parseDouble(jiweiData[7].substring(0, jiweiData[7].length() - 1))); LatLng latLng5 = new LatLng(Double.parseDouble(jiweiData[8].substring(1)), Double.parseDouble(jiweiData[9].substring(0, jiweiData[9].length() - 1)));*/ // LatLng latLng2=new LatLng(Double.parseDouble(jiweiData[2].substring(1)),Double.parseDouble(jiweiData[3].substring(0, jiweiData[1].length() - 1))); //根据获取的经纬度,将地图移动到定位位置 aMap.moveCamera(CameraUpdateFactory.changeLatLng(new LatLng(mlat, mlgt))); MarkerOptions markerOptions = new MarkerOptions(); markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.maplocation)); markerOptions.position(new LatLng(mlat, mlgt)); markerOptions.title("位置"); markerOptions.snippet("纬度:" + mlat + " 经度:" + mlgt); markerOptions.period(100); aMap.addMarker(markerOptions); // List<LatLng> latLngs = new ArrayList<>(); //latLngs.add(1,Double.parseDouble(jiweiData[0].substring(1))); /// latLngs.add(new LatLng(Double.parseDouble(jiweiData[2].substring(1)), //Double.parseDouble(jiweiData[3].substring(0, jiweiData[3].length() - 1)))); /* latLngs.add(new LatLng(Double.parseDouble(jiweiData[2].substring(1)), Double.parseDouble(jiweiData[3].substring(0, jiweiData[3].length() - 1)))); latLngs.add(new LatLng(Double.parseDouble(jiweiData[3].substring(1)), Double.parseDouble(jiweiData[4].substring(0, jiweiData[4].length() - 1)))); latLngs.add(new LatLng(Double.parseDouble(jiweiData[4].substring(1)), Double.parseDouble(jiweiData[5].substring(0, jiweiData[5].length() - 1))));*/ Log.e("TAG", "经纬度456 " + latLng1 + "a" + latLng2 + latLng3 + latLng4 + latLng5); PolygonOptions polygonOptions = new PolygonOptions(); polygonOptions.add(latLng1, latLng2, latLng3, latLng4, latLng5); polygonOptions.strokeWidth(15) .strokeColor(Color.argb(50, 1, 1, 1)) .fillColor(Color.argb(1, 1, 1, 1)); aMap.addPolygon(polygonOptions); Log.e("TAG", "运行到这里啦: "); /* mListener.onLocationChanged(aMapLocation); //添加定位图标 aMap.addMarker(locationUtil.getMarkerOption(str, mlat, mlgt));*/ } /*locationUtil = new LocationUtil(); locationUtil.setLocationCallBack(new LocationUtil.ILocationCallBack() { @Override public void callBack(String str, double lat, double lgt, AMapLocation aMapLocation) { // if(Coordinate==null){ // //根据获取的经纬度,将地图移动到定位位置 // aMap.moveCamera(CameraUpdateFactory.changeLatLng(new LatLng(lat, lgt))); // mListener.onLocationChanged(aMapLocation); // //添加定位图标 // aMap.addMarker(locationUtil.getMarkerOption(str, lat, lgt)); // }else } }); */ } //定位激活回调 @Override public void activate(OnLocationChangedListener onLocationChangedListener) { mListener = onLocationChangedListener; locationUtil.startLocate(getApplicationContext()); } @Override public void deactivate() { mListener = null; } @Override protected void onPause() { super.onPause(); //暂停地图的绘制 mapView.onPause(); } @Override protected void onDestroy() { super.onDestroy(); //销毁地图 mapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //重新绘制加载地图 mapView.onResume(); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mapView.onSaveInstanceState(outState); } // @Override // public void onPermissionsGranted(int i, List<String> list) { // // } // // @Override // public void onPermissionsDenied(int i, List<String> list) { // // } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); //把申请权限的回调交由EasyPermissions处理 EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); } //下面两个方法是实现EasyPermissions的EasyPermissions.PermissionCallbacks接口 //分别返回授权成功和失败的权限 @Override public void onPermissionsGranted(int requestCode, List<String> perms) { if (perms.get(0).equals("android.permission.READ_PHONE_STATE")) { ToastUtils.showShort("READ_PHONE_STATE权限获取成功"); } else if (perms.get(0).equals("android.permission.ACCESS_COARSE_LOCATION")) { ToastUtils.showShort("定位权限获取成功"); init(); } } @Override public void onPermissionsDenied(int requestCode, List<String> perms) { if (perms.get(0).equals("android.permission.ACCESS_COARSE_LOCATION")) { ToastUtils.showShort("定位权限获取失败,请在设置中手动开启"); } } } ``` 我的log打印出来的数据是 ``` 07-16 17:38:51.294 19116-19116/com.chenxi.bimquanziguankong E/TAG: 噢噢噢噢 [[[108.286888,22.8389],[108.287317,22.8389],[108.287462,22.838598],[108.287215,22.83846],[108.286952,22.838504]]] 07-16 17:38:51.426 19116-19116/com.chenxi.bimquanziguankong E/TAG: qqqqqqqq[Ljava.lang.String;@282045c3 07-16 17:38:51.426 19116-19116/com.chenxi.bimquanziguankong E/TAG: wwwww108.286888rrrrrrr22.8389 07-16 17:38:51.439 19116-19116/com.chenxi.bimquanziguankong E/TAG: 经纬度456 lat/lng: (90.0,22.8389)alat/lng: (90.0,22.8389)lat/lng: (90.0,22.838598)lat/lng: (90.0,22.83846)lat/lng: (90.0,22.838504) 07-16 17:38:51.449 19116-19116/com.chenxi.bimquanziguankong E/TAG: 运行到这里啦: ``` 就是它的经度会变成90.0无论我给它的经度是多少都是90.然后区域也画不出来。有大神知道什么原因吗?
在MIUI8中修改系统时间
**程序想实现修改系统时间的功能** 在其他手机上申请root权限后可以通过 SystemClock.setCurrentTimeMillis(when); 来更改系统时间。 在MIUI8(ANDROID 6.0.1)中报错 Unable to set RTC java.lang.SecurityException: setTime: Neither user 10118 nor current process has android.permission.SET_TIME. 在AndroidManifest中添加 **android.permission.SET_TIME **权限后 又说Permission is only granted to system apps,权限只供系统APP使用。 请问各位前辈有没有什么解决方案???改不了系统时间啊
android申请系统管理权限无响应
在做一键锁屏的demo,MainActivity主要代码如下: private DevicePolicyManager mDPM; private ComponentName mDeviceAdminSample; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); mDeviceAdminSample = new ComponentName(this, AdminReceiver.class); } public void activeAdmin(View v){ Intent intent = new Intent(); intent.setAction(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample); startActivity(intent); } public void lockScreen(View v){ mDPM.lockNow(); Toast.makeText(this, "here222222222!", Toast.LENGTH_SHORT).show(); } 但是按了activeAdmin按钮后APP无反应,没有弹出激活系统权限的activity。 在6.0,5.1,4.4系统上都试过了均是一样。logcat无输出。 写了广播接收者、xml文件,也在清单文件中注册了。 哪位大神能告诉我哪里出问题了
BroadcastReceiver不能显示提示,跳转到服务报错没声明
![图片说明](https://img-ask.csdn.net/upload/201805/29/1527581073_560373.png) ![图片说明](https://img-ask.csdn.net/upload/201805/29/1527581106_468182.png) ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testbroadcastreceiver"> <!--电话钻港台--> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter android:priority="99999"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".MyService"/> <!--需要注意的是,监听广播往往需要添加响应的权限,监听外拨电话的声明如下,6.0以上需要动态申请权限:--> <receiver android:name=".MyBroadcastReceiver" android:enabled="true" android:exported="true" android:permission="android.permission.PROCESS_OUTGOING_CALLS"> <intent-filter android:priority="-1"> <!--NEW_OUTGOING_CALL 监听外拨电话--> <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver> </application> </manifest> ```
锁屏后搜不到beacon设备
android6.0以上的版本,我用智石的BrightBeacon SDK和altbeacon:android-beacon-library都有这个问题。在启动软件是动态申请了ACCESS_COARSE_LOCATION权限。 刚启动的时候可以正常的搜索到设备,如下图 ![搜到的结果图](https://img-ask.csdn.net/upload/201804/19/1524103115_902264.png) 然后锁屏后一段时间或者离开运用一段时间就搜不到设备了,我没有移动手机位置和beacon设备的位置。搜索是做在前台service里的,它没被kill掉。 ![搜到空结果图](https://img-ask.csdn.net/upload/201804/19/1524103507_807299.png) 想请问这有可能是什么原因?该怎么解决?
接受到了广播,但不能弹出提示和启动服务
监听的广播是: ``` <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> ``` Manifest 代码: ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testbroadcastreceiver"> <!--电话钻港台--> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter android:priority="99999"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".MyService"/> <!--需要注意的是,监听广播往往需要添加响应的权限,监听外拨电话的声明如下,6.0以上需要动态申请权限:--> <receiver android:name=".MyBroadcastReceiver" android:enabled="true" android:exported="true" android:permission="android.permission.PROCESS_OUTGOING_CALLS"> <intent-filter android:priority="-1"> <!--NEW_OUTGOING_CALL 监听外拨电话--> <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver> </application> </manifest> ``` 广播的代码: ``` <receiver android:name=".MyBroadcastReceiver" android:enabled="true" android:exported="true" android:permission="android.permission.PROCESS_OUTGOING_CALLS"> <intent-filter android:priority="-1"> <!--NEW_OUTGOING_CALL 监听外拨电话--> <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver> ``` (注:广播的权限在开启应用程序时已经动态获取了) 广播类的主要代码: ``` public void onReceive(Context context, Intent intent) { Log.i(TAG,"接收到了广播============================================="); //接受到了广播 try { Toast.makeText(context,"接受到了广播",Toast.LENGTH_LONG).show(); Intent intent1 = new Intent(context,MyService.class); context.startService(intent1); Log.i(TAG,"接收到了广播111"+context); }catch (Exception e){ e.printStackTrace(); Log.i(TAG,"接收到了广播2222"); } } ``` 服务类的主要代码: ``` @Override public void onCreate() { super.onCreate(); Toast.makeText(this,"收到了广播",Toast.LENGTH_LONG).show(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Toast.makeText(this,"收到了广播————————---",Toast.LENGTH_LONG).show(); return super.onStartCommand(intent, flags, startId); } ``` 打印的日志 : ``` 11-01 13:22:46.612 27292-27292/com.example.testbroadcastreceiver I/Test :MainActivity-->: 活动onPause()状态 ------ 11-01 13:22:46.665 27292-27292/com.example.testbroadcastreceiver I/Test :MainActivity-->: 活动 onStop()------当一个Activity被另一个Activity完全覆盖时,被覆盖的Activity就会进入Stopped状态,此时它不再可见,但是跟Paused状态一样保持着其所有状态信息及其成员变量。 11-01 13:22:53.860 27292-27292/com.example.testbroadcastreceiver I/Test :MyBroadcastReceiver-->: 接收到了广播============================================= 11-01 13:22:53.872 27292-27292/com.example.testbroadcastreceiver I/Test :MyBroadcastReceiver-->: 接收到了广播111android.app.ReceiverRestrictedContext@8412aff 11-01 13:24:04.562 27292-27305/com.example.testbroadcastreceiver I/IPCThreadState: Application 11-01 13:24:04.564 27292-27305/com.example.testbroadcastreceiver E/SchedPolicy: set_thread_freeze_state, freeze=1, pid=27292, num=15 ```
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问