Articles of android 6.0 棉花糖

Android棉花糖 – 权限状态改变

Android Marshmallow中的权限状态更改检测有任何方法吗? 我还没有看到广播…

Android的棉花糖callback时,用户撤销设置的权限?

如果用户在授予权限后撤销设置的权限,是否有办法获得回叫? 我知道我们必须在尝试使用相机之前检查权限等。 考虑以下情况,我有一个video处理应用程序需要读取和写入存储的权限。 处理的任务通常是几秒钟。 假设用户在提问时给予权限,并在处理开始后撤消权限。 在这种情况下,我们可以得到callback,而不是每次都检查吗? 只是为了我们可以优雅地处理错误情况。

弃用AudioManger.setStreamMute的替代方法?

AudioManger.setStreamMute现在已经被api 23弃用了,最好使用AudioManager.adjustStreamVolume和AudioManager.ADJUST_MUTE. 我的问题是,这种标志只支持api 23,而我的应用程序是最低api 16。 有没有其他的方法来静音整个系统? 如果没有,为什么谷歌弃用此方法?

获取当前位置0在低于23 API的棉花糖给它确切的当前位置使用融合位置

我在23个以下的设备中获得了当前位置,但在23个仿真器设备中获得了(0.0,0.0)经度和经度。 编辑目前,我正在使用Fused Location Provider获取当前位置 public class ContactUsFragment extends Fragment implements ConnectionCallbacks, OnConnectionFailedListener, LocationListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i("TAG", "OnCreate Called"); locationManager = (LocationManager) getActivity() .getSystemService(Context.LOCATION_SERVICE); buildGoogleApiClient(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, final Bundle savedInstanceState) { // Inflate the layout for this fragment view = inflater.inflate(R.layout.fragment_contact_us, container, false); Log.i("TAG", […]

如何检查Android棉花糖模拟位置?

如何检测是否在Android Marshmallow使用Mock Location触发Mock Location ? 以前,我使用了Settings.Secure.ALLOW_MOCK_LOCATION 但是,在API级别23中,这已被弃用。 我想检查触发是否与假的位置或原始的GPS? 现在,有什么替代检查是否启用Mock Location Android Marshmallow ?

获取棉花糖蓝牙本地MAC地址

在棉花糖之前,我的应用程序将通过BluetoothAdapter.getDefaultAdapter().getAddress().获取设备的MAC地址BluetoothAdapter.getDefaultAdapter().getAddress(). 现在,棉花糖安卓正在返回02:00:00:00:00:00 我看到一些链接(抱歉不知道现在在哪里),说你需要添加额外的权限 <uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS"/> 能够得到它。 但是它不适合我。 是否有一些额外的权限需要获得mac地址? 我不确定它在这里是相关的,但是表格也包括在内 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 那么有没有办法获得本地的蓝牙MAC地址?

Android 6.0 RuntimeException:无法连接到相机服务

在Nexus5(Android6.0)中运行的应用程序发生错误。 错误是 java.lang.RuntimeException:无法连接到相机服务 我已经将权限添加到AndroidManifest.xml。 但该应用程序是可以与另一个电话(Android5.1)和genymotion AVD(Android 4.0)。 关键代码如下 @Override public void onResume() { super.onResume(); try { mCamera = Camera.open(); }catch (Exception e){ Log.e(TAG,"open camera failed",e); } }

蓝牙LE ScanFilters不能在Android M上运行

下面的代码在运行Android 5.1.1(Build LMY48M)的Nexus 9上效果很好,但不能在运行Android 6.0的Nexus 9(Build MPA44l)上运行。 List<ScanFilter> filters = new ArrayList<ScanFilter>(); 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 = builder.build(); filters.add(scanFilter); mBluetoothLeScanner.startScan(filters, settings, new ScanCallback() { … }); 在Android 5.x上,当看到与扫描filter匹配的制造商广告时,上面的代码会产生一个callback。 (请参阅下面的示例Logcat输出。)在具有MPA44l的Nexus 9上,不会收到callback。 如果您注释掉扫描filter,则在Nexus 9上成功接收callback。 09-22 00:07:28.050 1748-1796/org.altbeacon.beaconreference D/BluetoothLeScanner﹕ […]

我怎样才能在Android中自定义权限对话框?

假设我在运行时请求一个权限,如下所示: ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_CONTACTS}, MY_PERMISSIONS_REQUEST_READ_CONTACTS); Android系统创build一个popup对话框来请求权限。 我怎样才能定义该对话框的自定义布局?

Android棉花糖dynamic权限更改杀死所有的应用程序进程

观察:手动更改Android应用程序的权限会终止此应用程序的所有进程。 过程:转到设置 – >应用程序select应用程序和权限。 禁用其中一个权限。 设备:运行Android Marshmallow 6.0的Nexus 6设备 当我从启动程序启动应用程序时,它启动了在此应用程序的许可权被更改之前处于顶端的活动。 这与我们通过从UI多任务菜单中滑出应用程序来终止应用程序进程的行为不同。 在这种情况下,首先创build启动器活动。 也就是说,为了使应用程序在更改权限后启动时能正常工作,它不能启动启动器活动的依赖关系。 这是所有Android 6.0及更高版本设备上的dynamic权限的预期行为吗? 为什么从应用程序进程被从UI多任务菜单中滑出来的行为有所不同?