三星的安卓开源,它的用途是什么?
我从三星OSRC下载了Android设备开源. 它由platform.tar.gz和kernel.tar.gz 组成 似乎与构建AOSP有关,找到了MK文件. 我很好奇它是否可以(直接或间接)用于为设备构建较新的Android版本,以及我是否必须基于此文件构建新内核. 谢谢. 解决方案 如果要为新的Android版本构建,则无需构建另一个内核.只需使用三星提供的内核作为您的设备(或手机中的预构建内核). 将设备移植到较新的Android版本时,您需要调整INIT配置(init.rc来自位于device//>>>>>>的产品配置的文件),但不是init.rc文件的内核特定部分. 您还需要将特定于硬件的供应商二进制文件添加到生成的闪存图像中.因此,您可以从设备中提取这些库.它们中的大多数位于/system/vendor/lib中,但是/system/lib和所有子目录中也可能有一些库. 某些供应商二进制文件
2 2024-04-05
编程技术问答社区
如何将Apache HTTP API (legacy)作为编译时的依赖项添加到Android M的build.grade中?
如前所述在这里将不支持Apache HTTP API.文档说: 改用httpurlconnection类. 或 要继续使用Apache HTTP API,您必须首先在build.gradle文件中声明以下编译时依赖关系: android {uselibrary'org.apache.http.legacy' } 我已经将项目的大部分用法转换为httpurlconnection,但是,我仍然需要需要在一些领域中使用httpclient.因此,我试图将'org.apache.http.legacy'声明为编译时依赖性,但在build.gradle中遇到错误: 找不到Gradle DSL方法:'UseLibrary()' 我的问题是:如何将'org.apache.http.legacy'声明为我项目的编译时间依赖性? 任何帮助都非常感谢.谢谢 解决方案 for API 23: 顶级build.gradle-/build.gradle
2 2024-04-04
编程技术问答社区
如何在Android Marshmallow(API>=23)中获取Chrome历史记录和书签?
直到API级22(即直到Lollipop),有一种方法可以阅读Chrome App中的历史和书签(如现在,在Android api = 23棉花糖中,由于整个浏览器书签系统已在棉花糖中删除(在此处更改),上述方法不再起作用. 这是线程表明了为什么不再可能. 到目前为止,在我的研究中,我还没有找到好消息. Google肯定杀死了系统书签功能(在这里&在这里)浏览器会以任何方式公开它? 是否有一种替代/方法可以在Android Marshmallow中读取Chrome的书签和历史(甚至可以回答此问题)? 解决方案 与引用的文档相反,com.android.browser.permission.READ_HISTORY_BOOKMARKS仍由框架定义,并且仍然可以通过应用程序获得.不幸的是,在棉花糖和后来,Chrome检查了其他许可,该许可不允许使用常规应用程序.出于兼容原因,当该权限检查不可避免地失败时,Chrome返回零行而不是投掷SecurityExceptio
在Android Marshmallow中接收UDP
我遇到问题,可以通过新的Nexus 5X(Marshmallow)从服务器不断接收UDP数据包 我还有另一个接收所有UDP数据包的真实设备,但似乎在Android API中发生了变化. 代码: 有同样问题的人吗? if (s == null || s.isClosed()){ Log.v("udp", "----------------------------------------------------new socket---------------------------------"); s = new DatagramSocket(null); s.setReuseAddress(true);
0 2024-04-03
编程技术问答社区
蓝牙LE在安卓6.0系统上找不到任何设备
我正在构建一个从蓝牙设备接收数据的应用程序,并且在4.4.4 Android智能手机上充分发挥作用.但是,当我在6.0版设备上尝试它时,它找不到蓝牙设备.我已经激活了电话上的位置,并且在清单文件上添加了位置的权限,但什么也不会发生. 我已经阅读了某个地方,我必须请求用户的许可,并尝试添加 ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1001); //Any number 在我的活动的发动机上,我得到了错误"无法解决符号acivitycompat"和"无法解决符号清单" ... 我的build.gradle文件是: apply plugin: 'com.android.application' android { compileS
安卓6,BLE设备的认证问题,对LinkKey位的访问
我有一个有关Android 6和BLE兼容性的问题. 我的应用程序启动了受保护特征的读取请求,该特征启动配对显示以输入适当的密码.使用正确的通过代码,如果智能手机和BLE设备与Android 进行粘合在一起 我也尝试了Android 6.0.1,但它不断给我相同的信息"因为不正确的PIN或PASSKEY无法配对" 这不是一个权限问题,因为我已经获得了Access_coarse_location请求的职位权限. 似乎是配对请求中的linkkey位的问题. 我需要访问并阻止它,因为BLE设备与配对请求中的其他位相混淆(因为它使用了蓝牙4.0而不是4.2). 任何想法如何做? 解决方案 ti ble stack的1.4.0中已知错误 修复CC254X主机债券管理器SetParam配置不支持M/S Linkkey Enc Exchange
0 2024-04-01
编程技术问答社区
使用Android 6.0的BluetoothLeScanner.startScan不能发现设备
我正在尝试使用该函数 bluatoothlescanner.startscan 而不是弃用的一个 bluetoothadapter.startlescan . 昨天,我将Nexus 5更新为Android 6.0,从那时起,我的应用程序不再起作用. 我首先添加所需的偏好 access_coarse_location ,如下所示, https://developer.android.com/about/about/marshmallow/marshmallow/android-6.0-changes.html#behavior-hardware-wareware-dareware-dware-dware-id . 然后,我添加了此处所述的许可:权限/请求.html . 但是最后似乎不起作用,它不会发回BLE设备. 这是我的代码: 明显
Android 6.0 Marshmallow BLE : 连接参数
蓝牙低能连接参数管理似乎在Android 6中发生了变化. 我有一个BLE外围设备,他需要使用一些特定的连接参数(尤其是连接间隔),并且我想使用BLE规范允许的最小连接间隔(即7,5ms). > Android SDK不允许从BLE GAP Central(智能手机)侧选择它,因此正确的方法是使我的间隙外围设备在建立间隙连接后发送L2CAP Connection Parameter Update Request. 我要求的参数是: 连接间隔最小:7,5ms 连接间隔最大:7,5ms 从延迟:0 监督超时:2000ms 这与我一直在测试的所有Android设备一起工作,从4.3到5.x:发送L2CAP Connection Parameter Update Request后,我的设备将带有0x0000(接受)的L2CAP Connection Parameter Update Response,然后是LE Connection Update Compl
蓝牙LE扫描在后台失败-权限
以下代码在我的Nexus 9运行Android 5.1.1(构建LMY48M)上都很好,但无法在Nexus 9运行Android 6.0(构建MPA44L) 上工作. List filters = new ArrayList(); ScanSettings settings = (new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_POWER)).build(); ScanFilter.Builder builder = new ScanFilter.Builder(); builder.setManufacturerData((int) 0x0118, new byte[]{(byte) 0xbe, (byte) 0xac}, new byte[]{(byte) 0xff, (byte)0xff}); ScanFilter scanFilter = bui
安卓6.0上的蓝牙低能耗启动扫描无法找到设备
我正在使用Nexus 5使用蓝牙低能的应用程序.它在Lollipop上工作,现在它不在棉花糖上. 我在清单中和活动中设置了Access_coarse_location和Access_fine_location权限. 这是扫描式的列表: mScanFilterTest = new ScanFilter.Builder().build(); mScanFilter = new ArrayList(); mScanFilter.add(mScanFilterTest); 这些是设置: mScanSettings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_POWER).setReportDelay(0) .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES).build
0 2024-04-01
编程技术问答社区
安卓6.0系统的蓝牙低能量扫描需要启用定位功能
升级到Android版本6.0蓝牙低能(BLE)扫描仅在设备上启用位置服务时才能使用.请参阅此处的参考: Android 6.0上的蓝牙低能开始扫描找不到设备 基本上,您需要对应用程序以及手机启用许可.这是一个错误吗?是否可以实际启用没有位置服务的情况下进行扫描?我不想有所有应用程序的位置. 编辑 我没有提到我正在使用API​​ 21中提供的startScan()方法.我对此方法所需的清单中的课程和良好的位置权限很好.我只是不希望我的应用程序的用户必须在其设备(GPS等)上启用位置服务来使用我的应用. 以前,startScan()方法将在手机上禁用的位置服务运行并返回结果.但是,在棉花糖上,相同的应用程序将"扫描",但默默失败,并且在电话中未启用位置服务时未返回结果,并且课程/良好位置权限仍在清单中. 解决方案 不,这不是错误. 这个问题 被培养给Google,他们回答说这是预期的行为和预期的行为和他们不会修复它.他们将开发人员指示在问题中,它并不是要解决
0 2024-04-01
编程技术问答社区
在Android Marshmallow中未调用BluetoothAdapter.LeScanCallback中的onLeScan。
我刚刚更新了我的Nexus 5,并且我的应用程序的功能已停止工作. 原因是接口LeScanCallback没有调用函数onLeScan.在以下代码上,我正在使用一些不弃用的代码,但是我需要这样做,因为我正在测试一些技术.这就是我启动蓝牙适配器的方式: @Override protected void onStart() { super.onStart(); // Check if the device has BLE if (!this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { bleNotSupported(); return; } // Initializes a Bluetooth adapter. final BluetoothManager bluetoothMan
0 2024-04-01
编程技术问答社区
在Android Marshmallow中请求多个蓝牙权限
我正在开发一个具有连接性的应用程序,该应用程序连接到具有SDK 23的蓝牙设备.我在要求蓝牙的多个权限时遇到问题.这是我到目前为止所做的: @Override public void onStart() { super.onStart(); if (D) Log.e(TAG, "++ ON START ++"); if (ContextCompat.checkSelfPermission(MyBlueToothClientActivity.this, Manifest.permission.BLUETOOTH) != PackageManager.PERMISSION_GRANTED) { } else { ActivityCompat.requestPermissions(MyBlueToothClientActivity.this,
0 2024-04-01
编程技术问答社区
自从Marshmallow更新后,使用BluetoothAdapter.getDefaultAdapter().startDiscovery();的蓝牙发现被破坏了。
我有一个使用蓝牙并连接到设备的应用程序,可以使用bluetoothadapter.getDefaultadapter().startDiscovery()找到任何设备;在发现之前正常工作.还尝试了其他应用程序,它也无法在其他应用程序中使用.但是我尝试配对的设备(Arduino BT模块)可以在Android设置中找到.知道我能尝试什么?我实施了所有类似于 http://developer..android.com/guide.com/guide/guide/topics/topics/connectivity/bluetooth.bluetooth. html 它在更新之前起作用. 解决方案 蓝牙适配器已在Android 6.0 中变化 您需要设置权限access_fine_location或access_coarse_location许可并需要使用 bluetoothlescanner.startscan()启动扫描的方法. 以下是更改日志的描述: 为了在And
2 2024-04-01
编程技术问答社区
在Marshmallow中获取蓝牙本地mac地址
Pre Marshmallow我的应用程序将通过BluetoothAdapter.getDefaultAdapter().getAddress(). 获得其设备MAC地址 现在使用棉花糖android返回02:00:00:00:00:00. 我看到了一些链接(对不起,现在在哪里)说您需要添加其他许可 能够得到它.但是它对我不起作用. 获得MAC地址需要一些额外的权限吗? 我不确定这里是否相关,但清单也包括 所以
0 2024-04-01
编程技术问答社区
如何在安卓系统中要求相机的运行时权限 , 运行时存储权限
我正在执行一个申请,以扫描按钮单击的条形码,并且它对Lollipop版本的工作正常.当我来到棉花糖时,它停止了工作.这是错误: 摄像头在连接到相机0 时发生错误 它迫使我打开许可: 设置 - >应用程序 - >我的应用 - >相机. 我的问题是如何在棉花糖中自动允许摄像机许可或要求用户在运行时打开相机.屏幕截图: 解决方案 下面我写了一个授予相机运行时权限的代码,有一系列字符串,您可以在运行时提供多个请求. public class MainActivity extends AppCompatActivity { private static final int PERMISSION_REQUEST_CODE = 200; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceStat