我目前正在运行一些测试,以查看经过验证的链接系统如何与Android M配合使用并遇到有趣的结果。通常的流程是这样的:
当服务器关闭时,我们看到此
但是,如果服务器在初次验证后出现故障,我们会发现一些有趣的现象
如果我们在重新安装之前等待了一段时间,则将进行网络调用,一切正常。似乎自动验证数据和/或应用程序->链接数据被缓存在未被应用程序卸载破坏的地方。
在Android M-Preview GoogleAccountCredential.setSelectedAccount上似乎不起作用.
在调试时,我注意到在调用该方法之后,对象的selectedAccount和accountName字段仍为null.
在调试时你可以看到我的变量accountName不为空或为null,我调用了.setSelectedAccountName(),但正如您在调试窗口中看到的那样,GoogleAccountCredential中的字段仍为空.
我认为这可能与某些权限有关?在我的清单上,我声明了以下权限:
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
Run Code Online (Sandbox Code Playgroud)
我知道GET_ACCOUNTS您在M上免费获得的许可(根据https://developer.android.com/preview/features/runtime-permissions.html#normal),但其他两个权限对于M-"未知"预习.也许吧,那就是那个?
似乎只有在其他应用程序手动询问READ_EXTERNAL_STORAGE权限时才能将数据共享到Android M上的其他应用程序,我想知道是否有人知道解决此问题的方法,而无需手动打开我可以共享的所有应用程序并选择存储权限.
例如,我有以下Intent来共享一些数据:
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Some Image Subject");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(someFile));
startActivity(Intent.createChooser(shareIntent, "Share via..."));
Run Code Online (Sandbox Code Playgroud)
假设someFile存在且我已经按照http://developer.android.com/training/permissions/requesting.html上建议的运行时权限模型进行操作,并且用户同意允许我的权限,因此文件实际上是在系统.
有没有办法告诉我正在分享的应用程序,我已经将此权限授予我的用户,请您代表我授予此权限?
这不起作用:
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Run Code Online (Sandbox Code Playgroud)
根据文件:
int FLAG_GRANT_READ_URI_PERMISSION
如果设置,则此Intent的接收者将被授予对Intent数据中的URI和其ClipData中指定的任何URI执行读取操作的权限.
更有趣的是,如果设置此标记并且我与Gmail共享,则不会检测到该标记,并且Google不会提示请求权限,而是仅捕获异常并且不附加我的文件.
任何帮助,将不胜感激.
我对Android 6(Marshmallow)运行时权限有疑问.如果用户想要从图库中选择照片,我们是否应该请求READ_EXTERNAL_STORAGE许可?
好像我可以访问图库,即使我关闭存储权限.
android-gallery android-external-storage android-6.0-marshmallow runtime-permissions
我知道,使用Android Marshmallow,每次我们需要一个需要权限的功能时,我们都必须询问权限.
我为新的应用程序执行此操作,但对于旧的BIG应用程序更复杂.
对于旧的BIG App,我要求"MainActivity"中的所有权限.
所以,我的应用程序启动并显示一个Map Fragment.我没有问题请求位置许可.用户同意.
用户将其置于后台,进入应用程序设置并拒绝权限.然后他把应用程序放在前台:应用程序崩溃!!
我知道,使用Map Fragment时出现问题.
但该应用程序太大,无法分析每一个权限.
我需要快速解决方案:允许更改--->重启APP!
这就是GoogleMaps的作用!
我创建了GoogleMaps,并将其置于后台.
GoogleMaps App权限,第一个区别:
在我的应用程序中,如果我拒绝了许可,我没有显示Google地图的此消息:
之后,如果我将GoogleMaps放在前台,应用程序重新启动没有问题:
我的应用需要这个.有人能帮我吗?!?!?!?
非常感谢!!
我有一个专为Android开发的Unity应用(v5.2.4),正在寻求对Android(v6.0.1)上的“拨打和管理电话”的许可。做一些研究,似乎它可能与READ_PHONE_STATE有关。
因此,在构建apk之后,我取消了READ_PHONE_STATE权限,将其重新打包,消息不再出现。
我不确定100%是否将READ_PHONE_STATE放入应用中,团结论坛说READ_PHONE_STATE是在unity v5.2中删除的。
该应用程序还使用Urban飞艇,对READ_PHONE_STATE进行grep显示城市飞艇bin文件。
$ grep "READ_PHONE_STATE" -Rl .
./Submodules/ua-unity-plugin/build/intermediates/lint-cache/api-versions-6-23.0.1.bin
Run Code Online (Sandbox Code Playgroud)
我想知道的是,将许可放入清单中是什么?
android unity-game-engine android-manifest android-permissions android-6.0-marshmallow
我在使用新的Nexus 5X(Marshmallow)不断收到来自服务器的UDP数据包时遇到问题
我有另一个真正的设备接收所有UDP数据包,但似乎在Android API 23中发生了一些变化.
码:
谁有同样的问题?
if (s == null || s.isClosed()){
Log.v("udp", "----------------------------------------------------new socket---------------------------------");
s = new DatagramSocket(null);
s.setReuseAddress(true);
s.setBroadcast(true);
s.setSoTimeout(5000);
s.bind(new InetSocketAddress(8002));
p = new DatagramPacket(message, message.length);
try{
Thread.sleep(100);
}
catch(Exception e){
}
}
//Log.v("test","---------------------------------------------------- Pas1 ---------------------------------");
message = new byte[100];
//p = new DatagramPacket(message, message.length);
p.setLength(message.length);
s.receive(p);
Run Code Online (Sandbox Code Playgroud)
问题是:
我随机收到广播包,同时收到我收到的其他真实设备.
我确信在android api 23中有些东西被改变了.看来,如果缓冲区中有一个数据包,接收函数只会"触发",但如果在没有"内部"的情况下调用它,则会出现sockettimeout.
谢谢!
我正在开发cordova应用程序,我希望通过日历获得某种预订功能.为此,我安装了非常着名的EddyVerbruggen/Calendar-PhoneGap-Plugin插件.
但是在构建项目时,它会抛出以下错误
/home/admin/Desktop/myApp/platforms/android/src/nl/xservices/plugins/Calendar.java:148: error: cannot find symbol
if (PackageManager.PERMISSION_GRANTED != ContextCompat.checkSelfPermission(this.cordova.getActivity(), type)) {
^
symbol: method checkSelfPermission(Activity,String)
location: class ContextCompat
/home/admin/Desktop/myApp/platforms/android/src/nl/xservices/plugins/Calendar.java:157: error: cannot find symbol
ActivityCompat.requestPermissions(
^
symbol: method requestPermissions(Activity,String[],int)
location: class ActivityCompat
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
2 errors
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
* …Run Code Online (Sandbox Code Playgroud) android cordova android-permissions cordova-plugins android-6.0-marshmallow
最近,谷歌允许开发人员在Android 6.0(API 23)中使用指纹API.
我有与Android项目compiledSdkVersion 23和minSdkVersion 17.
我的问题是:我可以在我的项目中使用Fingerprint API,我试图在我的项目中使用Google示例,但我有以下错误消息:
Class Requires API level 23 (current min is 17)
Run Code Online (Sandbox Code Playgroud)
如果我能,我会感激任何人给我一个很好的教程.
谢谢
对于这个长期问题提前抱歉,但一切都应该是直截了当的,并清楚发生了什么,谢谢你看看.请注意,这实际上不是代码,只是伪代码来理解应用程序的实现.
问题
字节不会扩大到真正的数值.注意:level = -1表示尚未开始的游戏.level == 24代表游戏的结束.
1级
private byte level = -1;
private byte stage = 0;
@NonNull private final Stages[][] stages = new Stages[25][13];
public byte getLevel () {
return level;
}
public void nextLevel () {
// expect: 0
level++;
// stages[ 128][ 0] (ArrayIndexOutOfBounds)
stages[level][stage] = new Stage();
}
Run Code Online (Sandbox Code Playgroud)
第2类扩展第1类
@NonNull private final byte[][] values = new byte[25][4];
public byte getScore (final byte level, final byte player) {
// values[ 255][ 2] …Run Code Online (Sandbox Code Playgroud)