我想获取用户的国家/地区代码,而不使用在 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
我正在尝试从 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
我想在我的应用程序中。如果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 应用程序仅使用移动数据,即使 WIFI 和移动数据都在Android 6 中。如何仅将 android 进程绑定到移动数据。
请建议。例子会很好。
android cellular-network wifi android-6.0-marshmallow android-connectivitymanager
我正在寻找在 Android Marshmallow 中检测哪个手指用于设备身份验证。用于获取成功身份验证的回调是 -
onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result)
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何使用 FingerprintManager.AuthenticationResult 对象来检测用于身份验证的手指。
对此任何帮助表示赞赏。
java android fingerprint android-6.0-marshmallow android-fingerprint-api
我正在开发一个内容提供商应用程序。在该应用程序的清单中,我在应用程序标记中放置了一个提供程序元素。以下是代码
<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
我正在尝试在我的按钮上应用统一的样式。
这是我的 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)
然后我将删除所有按钮上的单独样式属性
如何在弹出窗口中显示数字选择器...
我尝试在不同的活动中制作数字选择器..但我希望它在单击按钮时显示在弹出窗口中。
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 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
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