小编rot*_*d86的帖子

getAccountsByType不会返回marshmallow中的任何内容

现在这很奇怪......

运用

AccountManager.newChooseAccountIntent(null, null, new String[] {"com.google"}, null, null, null, null);
Run Code Online (Sandbox Code Playgroud)

确实给了我一个账户清单.但是使用

AccountManager.get(context).getAccountsByType("com.google")
Run Code Online (Sandbox Code Playgroud)

返回0个帐户.这个问题只发生在棉花糖中.

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

仍然存在于清单中.

有任何想法吗...?

更新:原来,必须要求GET_ACCOUNTS的许可,即使文档说不然......(见评论)

android android-6.0-marshmallow

10
推荐指数
1
解决办法
5676
查看次数

如何使org.apache.http.legacy与ProGuard(天蓝色移动服务)一起工作?

问题:

我正在使用android移动服务,它依赖于androidhttpclient.

引用org.apache.http.legacy解决了所有问题,应用运行得很好.然而,随着proguard的开启,我不断遇到问题.

问题出现在两种情况中.如果我保持选中导出复选框(在jave构建路径中),我会得到一个'Stub!' 预期的异常(请参阅下面的讨论)(请参阅我正在讨论的复选框的屏幕截图)

在此输入图像描述

类型为"Stub!"的运行时崩溃:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stuffd/com.stuffd.MainActivity}: java.lang.RuntimeException: Stub!
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2345)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405)
       at android.app.ActivityThread.access$800(ActivityThread.java:149)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:211)
       at android.app.ActivityThread.main(ActivityThread.java:5317)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
Caused by: java.lang.RuntimeException: Stub!
   at org.apache.http.message.AbstractHttpMessage.(AbstractHttpMessage.java:7)
   at org.apache.http.client.methods.HttpRequestBase.(HttpRequestBase.java:7)
   at org.apache.http.client.methods.HttpGet.(HttpGet.java:8)
   at com.microsoft.windowsazure.mobileservices.table.MobileServiceJsonTable.executeGetRecords(MobileServiceJsonTable.java:952)
   at com.microsoft.windowsazure.mobileservices.table.MobileServiceJsonTable.executeUrlQuery(MobileServiceJsonTable.java:183)
   at com.microsoft.windowsazure.mobileservices.table.MobileServiceJsonTable.execute(MobileServiceJsonTable.java:160)
   at com.microsoft.windowsazure.mobileservices.table.MobileServiceTable.execute(MobileServiceTable.java:158)
   at com.microsoft.windowsazure.mobileservices.table.MobileServiceTable.execute(MobileServiceTable.java:249)
   at com.microsoft.windowsazure.mobileservices.table.query.ExecutableQuery.execute(ExecutableQuery.java:101)
Run Code Online (Sandbox Code Playgroud)

但是,如果我保持复选框未选中(如建议 - 请参阅下面的讨论),我得到和AbstractMethodError异常.

java.lang.RuntimeException: An error occured while executing doInBackground()
       at android.os.AsyncTask$3.done(AsyncTask.java:300)
       at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
       at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
       at java.util.concurrent.FutureTask.run(FutureTask.java:242)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) …
Run Code Online (Sandbox Code Playgroud)

android proguard android-proguard android-6.0-marshmallow

9
推荐指数
1
解决办法
4745
查看次数

Android 6 Marshmallow:一些特定权限的请求被立即拒绝,没有显示ui

使用官方AVD rev.3

打电话给:

ActivityCompat.requestPermissions(activity, new String[]{"android.permission.USE_CREDENTIALS"}, REQUEST_PERMISSION_CREDENTIALS);
Run Code Online (Sandbox Code Playgroud)

立即开火:

onRequestPermissionsResult (int requestCode, String[] permissions, int[] grantResults)
Run Code Online (Sandbox Code Playgroud)

结果代码是 PackageManager.PERMISSION_DENIED

任何人都有修复?

更新:已知受影响:

Manifest.permission.CHANGE_NETWORK_STATE
Manifest.permission.WRITE_SETTINGS (solved, see Sam's answer)
android.permission.USE_CREDENTIALS (solved, read Update 2)
READ_SMS
Run Code Online (Sandbox Code Playgroud)

更新2:看到优秀的接受答案.从本质上讲,USE_CREDENTIALS现在是一个安全的许可.打败我为什么sdk不仅仅为它返回PERMISSION_GRANTED ......

android android-6.0-marshmallow

8
推荐指数
1
解决办法
3073
查看次数

如何在Eclipse/ADT中的strings.xml中重构字符串资源?

我想在我的应用程序中重命名100多个字符串(例如,将com.myapp附加到所有这些字符串的前面),但右键单击时重构菜单显示为灰色.实现这一目标的任何其他方式?顺便说一下,新的Android工作室有这个功能吗?

我已经知道粘贴到Excel技巧以按字母顺序排列所有内容.

eclipse android adt eclipse-adt

5
推荐指数
0
解决办法
1249
查看次数

如何在SAF(存储访问框架)中正确处理文件扩展名?

因此,我使用以下代码将图像保存到设备:

        Intent intentSaveToDevice = new Intent(Intent.ACTION_CREATE_DOCUMENT)
        .addCategory(Intent.CATEGORY_OPENABLE)
        .setType("image/*")
        .putExtra(Intent.EXTRA_TITLE, model.StuffName);

        startActivityForResult(intentSaveToDevice, StuffdApp.REQUEST_CODE_SAVE_SAF);
Run Code Online (Sandbox Code Playgroud)

而且效果很好,但是图像保存时不带*.jpg*.png扩展名。

所以我尝试了这个:

.putExtra(Intent.EXTRA_TITLE, model.StuffName+".jpg");
Run Code Online (Sandbox Code Playgroud)

这似乎很好。除了有重复的文件时,我得到以下信息:

mysavedimage.jpg(1) 代替 mysavedimage(1).jpg

(1)由SAF自动附加,但位置错误。在android 4.4和5上试用过。

也尝试更改.setType("image/*")为不同的jpg变体,但这没有帮助。

在SAF中处理文件扩展名的正确方法是什么?具体来说,保存重复文件时如何获得正确的扩展名?

android

5
推荐指数
0
解决办法
512
查看次数