Articles of android 6.0 marshmallow

Android应用内购买:在定位Android 6时,是否需要检查com.android.vending.BILLING权限?

在实施应用内结算或IAB时, 文档会说您必须将其添加到清单中: 从Android 6开始,如果用户已授予不属于“ 普通 ”权限类别的权限,则应在运行时检查应用程序。 请注意,在API级别23, com.android.vending.BILLING未列在此类别下的任何位置。 所以… 如果不正常,这是否意味着危险? 在使用IAB之前是否需要检查权限? 如果我这样做,怎么样? 我找不到任何与新的Android 6权限模型集成的IAB示例。 例如,在Manifest.permission下似乎没有任何与计费相关的权限。

试图为Android M实现摄像头权限获取无虚拟方法checkSelfPermission

我尝试以这种方式实现相机权限: private void checkCameraPermissions() { if(checkCameraHardware(this)) { if (checkSelfPermission(Manifest.permission_group.camera) != PackageManager.PERMISSION_GRANTED) { Crashlytics.log(“Requesting camera permission”); // Should we show an explanation? if (shouldShowRequestPermissionRationale( Manifest.permission_group.camera)) { // Explain to the user why we need to use the camera showRationaleForCameraUse(); } requestPermissions(new String[]{Manifest.permission_group.camera}, Constants.MY_PERMISSIONS_REQUEST_CAMERA_GROUP); // MY_PERMISSIONS_REQUEST_CAMERA_GROUP is an // app-defined int constant } else { startApp(); } […]

SecurityException:不允许执行OP_READ_PHONE_STATE

用户使用此错误跟踪报告我的应用程序崩溃 java.lang.SecurityException: com.android.phone from uid 10134 not allowed to perform OP_READ_PHONE_STATE at android.os.Parcel.readException(Parcel.java:1620) at android.os.Parcel.readException(Parcel.java:1573) at com.android.internal.telephony.IPhoneSubInfo$Stub$Proxy.getVoiceMailNumberForSubscriber(IPhoneSubInfo.java:858) at android.telephony.TelephonyManager.getVoiceMailNumber(TelephonyManager.java:2383) at android.telephony.TelephonyManager.getVoiceMailNumber(TelephonyManager.java:2366) 到目前为止,只有一个用户报告了此问题。 数千名其他用户正在运行此版本的应用程序,没有明显的问题。 当我们调用TelephonyManager.getVoiceMailNumber()时抛出exception。 此操作记录为READ_PHONE_STATE权限,该权限已被绝对正式授予。 我跟踪了android.apps.AppOpsManager类的OP_READ_PHONE_STATE权限,但无法确切地知道它不满意的内容。 任何人都可以解释发生了什么以及需要做些什么来解决问题。 谢谢,-Ken

Android 6 EditText.setError无法正常工作

在尝试为某些editTexts设置validation时,我已升级到android 6并看到一些奇怪的东西。 我正在使用android-saripaar进行validation: @Email(messageResId = R.string.error_email) private EditText email; @Password(min = 6, scheme = Password.Scheme.ALPHA_NUMERIC_MIXED_CASE_SYMBOLS) private EditText password; @ConfirmPassword private EditText repassword; @NotEmpty(messageResId = R.string.error_name) private EditText firstname; @NotEmpty(messageResId = R.string.error_name) private EditText lastname; private Validator mValidator; 由于某种原因,电子邮件,密码,确认密码没有在popup窗口中显示错误消息,而最后和第一个名称都没问题 我试过没有库,发生了同样的问题。 使用editText.setError(“Some Message”)这在android 6之前没有发生,并且在5上工作正常。 有人经历过类似的事吗? 如果是这样你是怎么解决的?

具有GET_ACCOUNTS权限的错误消息

我尝试使用使用Google+登录的新Android M权限更新我的应用,但是当我执行checkSelfPermission(Manifest.permission.GET_ACCOUNTS)popup的对话框显示“允许MyApp访问您的联系人?” 使用拒绝和允许按钮。 对于GET_ACCOUNTS权限,这似乎有些奇怪。 它不应该说与访问您的帐户相关的内容吗? 这是一个错误吗? 或者我应该采取不同的做法?

android 6.0.1强制wifi连接,无法访问互联网

这有很多类似的问题(谷歌:“没有检测到互联网访问。不会自动重新连接。”或:android force wifi连接编程)。 我以为我在这里有一个答案,但在安装6.0.1更新后它停止工作(我可能有1个安全补丁)。 似乎这是一种行为改变 。 我有一些2013年的nexus 7和6.0.1运行一个自助服务终端types的应用程序,并希望以编程方式连接到没有互联网连接的特定无线网络。 每个平板电脑都有一个唯一的静态IP地址:192.168.0.xx. 我使用普通的java套接字构造函数并检查接口是否正在使用:NetworkInterface.getNetworkInterfaces()。 手动连接已经完成。 有时会出现一个对话框,询问您是否要始终连接。 我总是检查是的。 但无线网络说:“路由器重启后,没有检测到互联网接入。不会自动重新连接”。 断开连接,启用,重新连接不起作用。 它最多得到:ip6-localhost / :: 1。 有没有人有使用请求对象或bindProcessToNetwork的运气? 编辑: 相关 。 编辑:问题似乎与:CAPTIVE_PORTAL_DETECTION_ENABLED – 此字符串似乎在源中定义: public static final String CAPTIVE_PORTAL_DETECTION_ENABLED = “captive_portal_detection_enabled”; … MOVED_TO_GLOBAL.add(Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED); 但抛出“android.provider.Settings $ SettingNotFoundException:captive_portal_detection_enabled明确使用时,android studio不可见。 另外,执行全局设置列表不包含常量。 编辑一个adb shell设置put global captive_portal_detection_enabled 0似乎确实有效,但是当路由器重启电源时,这不能在现场完成。 当平板电脑循环供电时,这个值似乎仍然存在。 现在这个值显示在全局设置列表中。 另外,使用原始字符串:Settings.Global.getInt(getContentResolver(),“captive_portal_detection_enabled”); 现在返回0。 编辑:看起来像设置它需要:android.permission.WRITE_SECURE_SETTINGS,但当然因为我们不是系统应用程序而放入清单时失败。 编辑:尝试执行shell命令抛出:java.lang.SecurityException,所以看起来你需要从adb发出命令:( 谢谢

始终未授予OS 4.0 READ_EXTERNAL_STORAGE权限上的Android Marshmallow权限模型

在Android OS 4.0上运行我的应用程序并请求READ_EXTERNAL_STORAGE权限时遇到问题: ActivityCompat.requestPermissions(ctx, requestedPermissions, requestCode); 我总是接受回调 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { grantResults != PackageManager.PERMISSION_GRANTED 使用ActivityCompat.checkSelfPermission检查权限始终返回permissionDenied 。 通过系统对话框请求权限,它在OS 6.0上运行良好。 Android OS 4.x除了4.0之外,总是授予权限。 OS 4.0其他权限(相机,日历,联系人,电话)表现良好,但READ_EXTERNAL_STORAGE导致此问题。 可能是操作系统问题?

Android Marshmallow 6.0在运行时请求权限

我在Marshmallow 6.0上测试我的应用程序,它正在关闭android.permission.READ_EXTERNAL_STORAGE ,即使它已经在Manifest中定义了。 在某处我读过,如果我在运行时请求权限,那么它不会强制关闭你的应用程序。 我也读过这个android文档 ,用于请求运行时权限。 所以,我开始知道我们可以请求下面的权限,如android文档中提到的那样。 // Here, thisActivity is the current activity if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { // Should we show an explanation? if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, Manifest.permission.READ_CONTACTS)) { // Show an expanation to the user *asynchronously* — don’t block // this thread waiting for the user’s response! After the user // sees the […]

获取当前位置0在marshmallow,其中23 API以下它给出了精确的当前位置使用融合位置

我在23个以下设备中获得当前位置,但在23个仿真器设备中获得(0.0,0.0)纬度和经度。 编辑目前我正在使用融合位置提供程序获取当前位置 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”, “OnCreateView Called”); […]

检测瞌睡状态

是否可以检测设备何时进入打盹/待机状态? 我无法在Android文档中find有关可能启用或创建的可能广播接收器或侦听器的任何内容,以便接收这些转换的通知。