相关疑难解决方法(0)

如何以编程方式在Android Marshmallow上打开特定应用程序的权限屏幕?

我对新的Android Marshmallow版本有疑问:

是否可以通过Intent或类似方式显示特定应用程序的权限屏幕?

Android M权限屏幕

可以使用以下代码显示应用程序设置 - 是否有直接打开权限屏幕的模拟解决方案?

startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", getPackageName(), null)));
Run Code Online (Sandbox Code Playgroud)

我已经对此做过一些研究,但我无法找到合适的解决方案 - 我将非常感谢您的帮助!

android android-permissions android-6.0-marshmallow

306
推荐指数
11
解决办法
13万
查看次数

创建在固定时间段后过期的Android试用版应用程序

我有一个应用程序,我想作为付费应用程序进入市场.我想有其他版本的"试用"版本,时间限制为5天?

我该怎么做呢?

android trialware android-1.5-cupcake

103
推荐指数
6
解决办法
6万
查看次数

如何从Android Marshmallow中的服务请求权限

在Android Marshmallow中,应在运行时在需要时请求权限,而不是在安装应用程序时立即请求权限.但是,我似乎只能从Activity请求权限,这是一个问题,因为我的应用程序只包含服务.(为什么会这样,你可能会问?该应用程序内部捆绑了一个Android Wear手表,所有手机都会查看附近的照片以发送到手表 - 无需任何活动.但它确实需要位置权限.)

那么,有没有办法从服务请求权限?或者以某种方式强制在安装时授予权限,就像过去一样?

android android-permissions android-6.0-marshmallow wear-os

97
推荐指数
4
解决办法
5万
查看次数

Android Marshmallow:使用Espresso测试权限?

Android Marshmallow引入的新权限方案要求在运行时检查特定权限,这意味着需要根据用户是否拒绝或允许访问来提供不同的流.

当我们使用Espresso在我们的应用程序上运行自动UI测试时,我们如何模拟或更新权限状态以测试不同的场景?

permissions android android-espresso android-6.0-marshmallow

62
推荐指数
6
解决办法
3万
查看次数

Android 6.0 Marshmallow.无法写入SD卡

我有一个使用外部存储来存储照片的应用程序.根据需要,在其清单中,请求以下权限

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

它使用以下内容来检索所需的目录

File sdDir = Environment
            .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd", Locale.US);
String date = dateFormat.format(new Date());
storageDir = new File(sdDir, getResources().getString(
            R.string.storagedir)
            + "-" + date);

// Create directory, error handling
if (!storageDir.exists() && !storageDir.mkdirs()) {
 ... fails here
Run Code Online (Sandbox Code Playgroud)

该应用程序适用于Android 5.1至2.3; 它已在Google Play上播放了一年多.

在将我的一个测试手机(Android One)升级到6之后,它现在在尝试创建必需目录时返回错误,"/ sdcard/Pictures/myapp-yy-mm".

SD卡配置为"便携式存储".我已经格式化了SD卡.我已经取代了它.我重新启动了.一切都无济于事.

此外,内置的Android屏幕截图功能(通过电源+低音量)失败"由于存储空间有限,或者应用程序或您的组织不允许".

有任何想法吗?

android android-sdcard android-6.0-marshmallow

51
推荐指数
4
解决办法
13万
查看次数

您可以在Android Marshmallow(API 23)的运行时权限模型中同步请求权限吗?

假设您有这样的方法:

public boolean saveFile (Url url, String content) {

   // save the file, this can be done a lot of different ways, but
   // basically the point is...

   return save_was_successful;
}
Run Code Online (Sandbox Code Playgroud)

在整个应用程序中,如果要将文件保存到外部存储,则执行以下操作:

if (saveFile(external_storage_url, "this is a test")) {
   // yay, success!
} else { // notify the user something was wrong or handle the error }
Run Code Online (Sandbox Code Playgroud)

这是一个简单的例子,所以不要对我的情况大概阻塞UI,妥善处理异常,等等.如果你不喜欢的文件保存得到的,你能想象一个getContact()getPhoneState()或什么的.重点是它是一个需要许可的操作,它返回一些值并在整个应用程序中使用它.

在Android <= Lollipop中,如果用户已经安装并同意授予android.permission.WRITE_EXTERNAL_STORAGE或其他什么,那么一切都会好的.

但是在新的Marshmallow(API 23)运行时权限模型中,在将文件保存到外部存储之前,您应该(1)检查是否已授予权限. 如果没有,可能(2)显示请求的理由(如果系统认为这是一个好主意)与吐司或其他什么,以及(3)要求用户通过对话授予权限,然后基本上坐下来等待打回来...

(所以你的应用程序坐在那里,等待...)

(4)当用户最终响应对话框时,onRequestPermissionsResult() …

android android-permissions android-6.0-marshmallow

42
推荐指数
2
解决办法
2万
查看次数

如何在Android中获得相机的许可.(特别是Marshmallow)

嘿我正在android studio中设计一个应用程序.我需要相机的许可.我已经包含<uses-permission android:name="android.permission.CAMERA" /> 在AndroidManifest.xml文件中.它在除Marshmallow之外的所有Android版本中都能正常工作.如何默认获得相机权限?如果不可能,我该如何向用户询问?

camera android

27
推荐指数
3
解决办法
7万
查看次数

设置自定义文件夹Android Download Manager

我有一个关于下载管理器的问题.我要从网站下载文件.当我设置下载的默认目录(Environment.DIRECTORY_DOWNLOAD)时,一切正常,我的下载开始了.但是,如果我尝试更改目录,我的应用程序不会下载该文件.特别是,我希望我的文件进入下载文件夹,例如/ storage/sdcard/Download/myFolder.我该如何解决这个问题?

File mydownload = new File (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+ "/myFolder");

if (!mydownload.exists()){
    mydownload.mkdir();
}

String url = sUrl[0];
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    request.allowScanningByMediaScanner();
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}

request.setDestinationInExternalPublicDir(mydownload.getAbsolutePath(),"Myfile.extension");


DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

android download download-manager

25
推荐指数
2
解决办法
3万
查看次数

Android 6.0权限错误

我收到这个错误:

getDeviceId: Neither user 10111 nor current process has android.permission.READ_PHONE_STATE.
   at android.os.Parcel.readException(Parcel.java:1599)
   at android.os.Parcel.readException(Parcel.java:1552)
Run Code Online (Sandbox Code Playgroud)

我虽然已经明白了.Android 6.XX Marshmallow设备有什么变化吗?我需要READ_PHONE_STATE允许获取设备的IMEI.PLS.救命.

android

20
推荐指数
3
解决办法
4万
查看次数

棉花糖FINE和COARSE位置许可

我正在尝试访问ACCESS_FINE_LOCATION,如果找不到访问权限ACCESS_COARSE_LOCATION.所以我要求获得这2个权限,但是他们给了我相同的对话框,要求获得位置许可.我知道这些都属于同一组,但谷歌说:

注意:即使用户已在同一组中授予了其他权限,您的应用仍需要明确请求其所需的每个权限.此外,将权限分组到组中可能会在将来的Android版本中发生变化.您的代码不应该依赖于特定权限属于或不属于同一组的假设.

这意味着我要求在一秒内获得这2个权限,这会导致连续2个对话框.这对我来说似乎不太友好.有没有更好的办法?

android android-permissions android-6.0-marshmallow

17
推荐指数
1
解决办法
2万
查看次数