标签: android-6.0-marshmallow

Android:在不使用任何需要主动请求的权限的情况下获取用户国家代码的方法?

我想获取用户的国家/地区代码,而不使用在 android M 下需要主动请求的任何权限。例如,如果用户位于中国,我想取回 CH。我不想为此使用“危险”权限 - 也不想read_phone_state通过TelephonyManager,也不想通过位置来尝试根据他的 GPS 进行猜测。有没有办法做到这一点,如果有的话,怎么做?

我尝试使用以下代码,但如果用户将其语言设置与其所在国家/地区分开(例如印度的用户将其手机设置为 English_US),则很容易失败:

Resources r = paramContext.getResources();
Configuration config = r.getConfiguration();
Locale currentLocale = config.locale;
Log.d("TAG", "Country: " + currentLocale.getCountry()); 
Run Code Online (Sandbox Code Playgroud)

android country-codes android-location android-permissions android-6.0-marshmallow

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

找不到符号变量 SEND_SMS

我正在尝试从 Android 应用程序发送短信,编写了以下代码,但出现编译错误:“找不到符号变量 SEND_SMS”。我还导入了“android.Manifest.permission”但未解决。请帮我。

案例 R.id.SendSMS:

            // Here, thisActivity is the current activity
            if (ContextCompat.checkSelfPermission(this,
                    Manifest.permission.SEND_SMS)
                    != PackageManager.PERMISSION_GRANTED) {

                // Should we show an explanation?
                if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                        Manifest.permission.SEND_SMS)) {

                    // Show an expanation to the user *asynchronously* -- don't block
                    // this thread waiting for the user's response! After the user
                    // sees the explanation, try again to request the permission.

                } else {

                    // No explanation needed, we can request the permission.

                    ActivityCompat.requestPermissions(this,
                            new String[]{Manifest.permission.SEND_SMS},
                            MY_PERMISSIONS_REQUEST_SEND_SMS);

                    // MY_PERMISSIONS_REQUEST_READ_CONTACTS is …
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-permissions android-studio android-6.0-marshmallow

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

用户 Android M 在应用中授予的权限

我想在我的应用程序中。如果permission已经授予不在dialogandroid中显示这是我的代码

@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.button:
                requestContactsPermissions();
            break;
        case R.id.button1:
          //  requestCameraPermissions();
            Toast.makeText(mcontext, "Hello", Toast.LENGTH_LONG).show();
            break;
    }

}

private void requestContactsPermissions() {

     boolean requestPermission = PersimissionTest.requestContactsPermissions(this);

    if (requestPermission == true) {
        ActivityCompat.requestPermissions(this, PERMISSIONS_CONTACTS, REQUEST_ID);

    } else {
       ActivityCompat.requestPermissions(this, PERMISSIONS_CONTACTS, REQUEST_ID);

    }

}
Run Code Online (Sandbox Code Playgroud)

@Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {

    if (requestCode == REQUEST_ID) {

        if (PersimissionTest.verifyPermissions(grantResults)) {

            Toast.makeText(mcontext, "Contacts permissions granted.", Toast.LENGTH_LONG).show();

        } else {
            Toast.makeText(mcontext, "Contacts permissions …
Run Code Online (Sandbox Code Playgroud)

android android-6.0-marshmallow

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

如何在 Android 6 中打开 wifi 时对任何应用程序强制使用移动数据

我希望 Android 应用程序仅使用移动数据,即使 WIFI 和移动数据都Android 6 中。如何仅将 android 进程绑定到移动数据。
请建议。例子会很好。

android cellular-network wifi android-6.0-marshmallow android-connectivitymanager

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

Android 指纹扫描仪,检测用于身份验证的手指

我正在寻找在 Android Marshmallow 中检测哪个手指用于设备身份验证。用于获取成功身份验证的回调是 -

onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result)
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何使用 FingerprintManager.AuthenticationResult 对象来检测用于身份验证的手指。

对此任何帮助表示赞赏。

java android fingerprint android-6.0-marshmallow android-fingerprint-api

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

无法在 Android 中授予我的自定义内容提供商权限?


我正在开发一个内容提供商应用程序。在该应用程序的清单中,我在应用程序标记中放置了一个提供程序元素。以下是代码

<provider
            android:name=".PlatesContentProvider"
            android:authorities="com.tag.custom_contentproviderdemo.Plates"
            android:enabled="true"
            android:readPermission="PlatesContentProvider._READ_PERMISSION"
            android:writePermission="PlatesContentProvider._WRITE_PERMISSION"
            android:exported="true" >
Run Code Online (Sandbox Code Playgroud)



我还开发了另一个应用程序,即 CPClient。它将向上述内容提供者读取/写入数据。我在其清单文件中被声明为元素。

以下是代码

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


在 CPClient 的启动器活动中,我检查了此权限。如果未授予,则意味着我将请求权限。但在请求权限时,它不会显示请求权限对话框,并且始终不授予权限。

以下是代码

private final String permissionsRequired="PlatesContentProvider._READ_PERMISSION";
    private final String permissionsRequired2= "PlatesContentProvider._WRITE_PERMISSION";
    private String[] permissions=new String[]{permissionsRequired,permissionsRequired2};    
public void process()
        {
            checkPermission();

            if(!permission_granted)
            {
                Toast.makeText(this,"Permission not granted.Requesing permission....",Toast.LENGTH_SHORT).show();
                requestPermission1();return;
            }
            else
            {
                bindWidgetEvents();  //After permission granted I will perform some process
                Log.d(TAG,"Permission granted");return;
            }
        }

        public void checkPermission()
        {
            int permit=this.checkSelfPermission(permissionsRequired);

            if(permit== PackageManager.PERMISSION_GRANTED) {
                Log.d(TAG, "permission granted");
                permission_granted=true;return;
            }
            else
                Log.d(TAG,"permission not granted");
            permission_granted=false; …
Run Code Online (Sandbox Code Playgroud)

android android-contentprovider android-studio android-6.0-marshmallow

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

colorButtonNormal没有效果?

我正在尝试在我的按钮上应用统一的样式。

这是我的 v21/styles.xml

<style name="DefaultButton" parent="Widget.AppCompat.Button.Colored">
    <item name="android:colorButtonNormal">#f00</item>
    <item name="android:textColor">@color/colorTextSecondary</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我像这样将其应用到我的按钮上

<Button
                android:id="@+id/submit_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginTop="@dimen/unit_large"
                style="@style/DefaultButton"
                android:text="Lemme In!" />
Run Code Online (Sandbox Code Playgroud)

这里没有什么特别的事情发生。但我的按钮的颜色没有改变。物质支持包有什么变化吗?我正在使用“25.3.1”

实际上,所有这些都是我必须做的更大努力的一部分,以更改应用程序的默认按钮样式,如下所示

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="android:buttonStyle">@style/DefaultButton</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然后我将删除所有按钮上的单独样式属性

android android-appcompat android-6.0-marshmallow

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

如何在弹出窗口中显示数字选择器

如何在弹出窗口中显示数字选择器...

我尝试在不同的活动中制作数字选择器..但我希望它在单击按钮时显示在弹出窗口中。

    package com.example.uc232142.picker;
    import android.app.Dialog;
    import android.os.Bundle;
    import android.support.v7.app.ActionBar;
    import android.support.v7.app.AppCompatActivity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.ImageButton;
    import android.widget.NumberPicker;
    import android.widget.PopupWindow;
    import static android.app.PendingIntent.getActivity;
    public class MainActivity extends AppCompatActivity {
    NumberPicker numberpicker,numberPicker1,numberPicker2;
    final String month[] = {"jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"};
    final String sub[] ={"Airlaw","criminal","Income tax","Direct tax","Customs", "Defence & Security Forces" , "Disinvestment" , "Education" , "Election" ,
                         "Electricity & Energy" , "Environment, Wildlife & Animal", "Exchange Control & FDI " , "Excise"};
    // TextView textview;
    @Override
    protected void …
Run Code Online (Sandbox Code Playgroud)

android popup android-6.0-marshmallow

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

在 Android O 上切换状态栏颜色的问题

有些东西不起作用;我不知道这是模拟器的问题还是 Android Oreo 上的错误(我没有使用 Android O 的物理设备),但我无法像 Marshmallow 那样从深色状态栏主题切换到浅色状态栏主题。

样式.xml(来自api 23):

<resources>

    <style name="ThemeLight" parent="MyBaseTheme">
        <item name="android:windowBackground">?attr/colorPrimary</item>
        <item name="android:statusBarColor">?attr/colorPrimary</item>
        <item name="android:windowLightStatusBar">true</item>
    </style>


    <style name="ThemeDark" parent="MyBaseThemeDark">
        <item name="android:windowBackground">?attr/colorPrimary</item>
        <item name="android:statusBarColor">?attr/colorPrimary</item>
        <item name="android:windowLightStatusBar">false</item>
    </style>


</resources>
Run Code Online (Sandbox Code Playgroud)

这在 Android M 上运行良好,当我使用 更改主题时setTheme(),但在 Android O 中,一旦我切换到浅色主题,它就不再更改并且状态栏保持黑色(windowLightStatusBar = true)/:

android android-theme android-6.0-marshmallow android-8.0-oreo

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

ClassCastException:MediaMetadataRetriever 无法转换为 AutoCloseable

MediaMetadataRetriever我尝试与 Kotlin 一起使用use

MediaMetadataRetriever().apply {
    setDataSource(context, uri)
}.use {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但它在 Android 6 Marshmallow (23 API) 上给了我一个错误:

java.lang.ClassCastException:android.media.MediaMetadataRetriever 无法转换为 java.lang.AutoCloseable

为什么这样?

android kotlin android-6.0-marshmallow android-6.0.1-marshmallow

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