使用Android Marshmallow,有一个新的权限模型.对我受影响的应用权限实施新模型并不是什么大问题.但是有一些关于安装和更新行为的问题.我发现了一些对我很重要的场景.我知道官方文档(https://developer.android.com/preview/features/runtime-permissions.html),有些事情可能很清楚,但我想确定.
目标SDK最大的应用程序 22安装在M设备上并授予所有权限 - >使用新权限模型更新应用程序
目标SDK最大的应用程序 22安装在M设备上并拒绝所有权限 - >使用新权限模型更新应用程序
在M设备上安装带有目标SDK 23的应用程序
具有目标SDK 22或23并且授予所有权限的应用程序 - >添加已授予组权限(read_storage)的新权限和另一个组的新权限(read_contacts)
目标SDK 23和read_contacts已授予的应用程序 - >从联系人组添加另一个权限(write_contacts)
我正在将应用程序升级到android 6.0.除了尝试播放来自远程源的某些视频外,一切似乎都没问题.它们在我们的非Marshmallow设备上播放得很好(具体来说,我在4.1.2 Jelly Bean上有一个Galaxy S3,播放完全相同的视频就好了,没问题).我们已经在6.0上使用多个设备进行了测试,问题似乎仅限于此操作系统.
当尝试在简单的视频视频中播放视频时,我会收到一条提示"无法播放此视频".
我过去在4.1.2上的其他视频遇到了一些问题,并认为它可能是编解码器问题,我认为这可能是罪魁祸首.不会播放的视频都有以下共同点:
当我尝试使用videoview启动活动时,这就是logcat吐出的内容.
201-801/? D/audio_hw_primary? out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
201-800/? D/audio_hw_primary? select_devices: out_snd_device(2: speaker) in_snd_device(0: none)
201-800/? D/msm8974_platform? platform_send_audio_calibration: sending audio calibration for snd_device(2) acdb_id(15)
201-800/? D/audio_hw_primary? enable_snd_device: snd_device(2: speaker)
201-800/? D/audio_hw_primary? enable_audio_route: apply and update mixer path: low-latency-playback
777-1257/? I/MediaFocusControl? AudioFocus requestAudioFocus() from android.media.AudioManager@f9138b2 req=1flags=0x0
4591-4591/? W/MediaPlayer? Couldn't open file on client side; trying server side: java.io.FileNotFoundException: No content provider: http://videopath.mp4
201-5605/? D/NuPlayer? onSetVideoSurface(0xb48c2700, no video …Run Code Online (Sandbox Code Playgroud) 我有一个带有Android 6.0的Nexus 6设备,没有root的库存版本.为了避免使用USB电缆永久连接设备,我使用了以下过程:
adb tcpip 5555.adb connect <device-ip>:5555以wifi模式连接.当我尝试从Android Studio部署应用程序时,连接将丢失.
我多次使用这个程序和其他设备(没有Android 6),我没有问题.
任何的想法?
我想知道当用户在Android 6.0上的应用设置中更改权限时,是否有某种方式可以收到通知.我没有运气,正在寻找这个答案.你知道广播接收器和一些特定的意图是否可能吗?或者也许有一些黑客来实现这一目标?
我有一个Android应用程序.在这个应用程序中,我通过谷歌GCM实现推送通知.它在Marshmallow下工作得很好.但是当我打开这个应用程序到Marshmallow然后它没有打开应用程序.它显示一个错误消息.
GoogleService初始化失败,状态:10,缺少预期资源:'R.string.google_app_id'用于初始化Google服务.可能的原因是缺少google-services.json或com.google.gms.google-services gradle插件
只有我为Marshmallow得到了这个错误.但是其他版本运行良好.不明白什么是Marshmallow的问题.请给我任何建议如何我可以解决Marshmallow.Thanks All的这个错误.
android push-notification google-cloud-messaging android-6.0-marshmallow
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Context context = (Permission) this;
// In an actual app, you'd want to request a permission when the user
// performs an action
// that requires that permission.
if (Build.VERSION.SDK_INT >= 23) {
getPermissionToReadUserContacts();
}
}
// Identifier for the permission request
private static final int READ_CONTACTS_PERMISSIONS_REQUEST = 1;
// Called when the user is performing an action which requires the app to
// read the
// user's contacts
public …Run Code Online (Sandbox Code Playgroud) android android-activity android-permissions android-6.0-marshmallow
正如google 的指南指出的那样,有正常,危险和特殊权限。
据我了解,危险是默认禁用的(这是真的吗?)。
如果某个应用程序声明它需要危险的权限,则用户必须将权限明确授予该应用程序。
这种感染还会更新还是仅新安装?
危险许可和特殊许可之间到底有什么区别?
Android说有特殊权限:
特殊权限 有些权限的行为与正常权限和危险权限不同。SYSTEM_ALERT_WINDOW和WRITE_SETTINGS特别敏感,因此大多数应用程序不应使用它们。如果应用程序需要这些权限之一,则它必须在清单中声明该权限,并发送请求用户授权的意图。系统通过向用户显示详细的管理屏幕来响应此意图。
这与上面的引用不同吗?我没有区别。谢谢!
我遵循MainActivity,它寻求6.0电话和存储任务的许可.它会提示许可2次,然后崩溃.在acquire_permission之后,是否需要重新启动MainActivity?感谢任何帮助或指点.
MainActivity.java
onCreate(){
seek_permissions()
//load db data and continue
//with the app tasks
}
public void seek_permissions(){
boolean hasWritePermission = (ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
if (!hasWritePermission) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.MOUNT_FORMAT_FILESYSTEMS,Manifest.permission.RECEIVE_BOOT_COMPLETED,Manifest.permission.MODIFY_PHONE_STATE}, REQUEST_PERM);
}
}
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case REQUEST_PERM:
{
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
acquired_perm = 1;
}
else {Toast.makeText(MainActivity.this, "Please consider granting these permissions", Toast.LENGTH_LONG).show(); }
}
return;
}
}
Run Code Online (Sandbox Code Playgroud) 每当我尝试通过意图打开相机/图库时,我在我的荣耀4C手机,带有64位八核CPU的Android版本6.0中收到此错误.
load:so =/system/lib64/libhwuibp.so
dlopen失败:未找到库"/system/lib64/libhwuibp.so"
基本上我试图在OpenCV-2.4.13.1-android-sdk so文件的帮助下裁剪图像.但这个错误似乎与设备相关,因为在其他手机应用程序工作完全正常,任何人都可以帮助我吗?
64-bit android opencv android-camera-intent android-6.0-marshmallow
添加InCallService了Android API级别23,以提供用于管理电话的用户界面。该文档提供了清单注册示例,但我无法使它正常工作。该应用可以正常编译,但设置中的默认应用不会显示我的应用。
我发现有关该主题的任何信息的唯一地方是一年前关闭的StackOverflow问题。对提出增加android.intent.action.DIAL活动的那个问题发表评论,但这也无济于事。我在活动中也尝试了其他其他意图的组合(android.intent.action.CALL_DIAL和android.intent.action.ANSWER)。
是否有替换手机应用程序所需的代码示例?这些类是否需要提供一些工作方法供应用程序显示?
android android-intent android-6.0-marshmallow android-7.0-nougat android-7.1-nougat