小编Ton*_*Ton的帖子

SharedPreferences读取旧值

我使用SharedPreferences来编写并稍后在我的应用程序中的不同活动中读取值.它曾经工作正常,但最近它似乎没有被混合.我的意思是,我写了一个值但是其他活动仍然读取旧值.有时它会正常工作.任何的想法?

编辑:这是一个示例代码:

首先,从一个线程:

SharedPreferences prefs = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("ComandToDo", value);
editor.commit();
... some code later:
alarmmanager.set(AlarmManager.RTC_WAKEUP, Miliseconds, sender);
Run Code Online (Sandbox Code Playgroud)

在报警接收器中:

SharedPreferences prefs = contexto.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
int value = prefs.getInt("ComandToDo", -1);    
Run Code Online (Sandbox Code Playgroud)

这就是问题所在,因为"value"不是线程中写的值.

android sharedpreferences

9
推荐指数
2
解决办法
3274
查看次数

获取所有系统壁纸

有没有办法以编程方式获取所有的android系统壁纸?

我知道如何获取当前的,通过WallpaperManager,然后将其保存到磁盘.但我想知道是否有办法访问所有作为操作系统附带的系统壁纸的图片

java android system wallpaper

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

registerMediaButtonEventReceiver未接收事件

我正在尝试接收物理按钮事件,例如手机侧面的音量按钮点击.我需要在服务中执行此操作,因为如果用户随时单击"音量调高/调低"按钮,我希望收到该消息.我在网上看了很多,但我不能让它工作,不知道什么是错的.这是我的代码:

在清单中:

    <receiver android:name=".clsMediaButtonReceiver" >
        <intent-filter android:priority="1000" >
            <action android:name="android.intent.action.MEDIA_BUTTON" />               
        </intent-filter>
    </receiver>  
Run Code Online (Sandbox Code Playgroud)

在服务OnStart()中:

   AudioManager manager = (AudioManager) getSystemService(AUDIO_SERVICE);
   manager.registerMediaButtonEventReceiver(new ComponentName(getPackageName(), clsMediaButtonReceiver.class.getName())); 
Run Code Online (Sandbox Code Playgroud)

一个broascastreceiver:

public class clsMediaButtonReceiver extends BroadcastReceiver
{  

   @Override public void onReceive(Context context, Intent intent)
   {  //This is never shown
      Toast toast1 = Toast.makeText(Context, intent.getAction(), Toast.LENGTH_SHORT);
      toast1.show();
   }

} 
Run Code Online (Sandbox Code Playgroud)

android volume

7
推荐指数
2
解决办法
8905
查看次数

GDPR 同意屏幕和编码

我将在我的应用程序中添加广告,因此我对 GDPR 的同意感到非常兴奋。这就是我寻求帮助的原因。

\n\n

我读过很多(很多)关于 GDPR 的网页,但它们对我的小脑袋来说太令人困惑了。所以我想知道这里是否有人可以提供一些线索。\n首先,我想要最简单的解决方案。我不希望用户选择做什么或不做什么。我的意思是,我的应用程序的第一个屏幕将显示 EULA 和 Cookie 同意。如果用户接受它们,则应用程序将继续,如果不接受,则应用程序将关闭。就是这样。我认为人们太热衷于因为展示广告而让自己的隐私被盗。如果他们害怕的话,他们可以购买没有广告的付费应用程序。

\n\n

当然,我的应用程序不会获取任何私人数据(没有联系人、没有电话、没有位置),也不会与任何第三方共享。它只是一个想要以合法方式展示广告的普通应用程序。

\n\n

我根据IAB格式的同意发现了编码问题。我认为根据不同的情况,它是一个0或1的长链。任何人都可以帮助如何编码吗?

\n\n

我将向用户显示一些如下文本:

\n\n
\n

您必须阅读并同意最终用户许可协议 (EULA) 和\n Cookie 同意书才能继续。

\n\n

Cookie 同意:

\n\n

欧洲法律要求数字出版商向应用用户提供有关其使用 COOKIES 和其他形式的本地存储的信息。您必须同意下一项同意才能继续:我们使用设备标识符、位置数据以及其他人口统计和兴趣数据来个性化内容和广告、提供媒体功能并分析我们的流量。我们还与我们的广告和分析合作伙伴(InMobi.com、Smaato、StartAp 和 Flurry)共享您设备中的此类标识符和其他信息。

\n
\n\n

也许第一个问题是:我真的需要以 IAB 格式编写同意书吗?

\n\n

许多广告公司都要求这样做。例如 InMobi:

\n\n
    JSONObject consentObject = new JSONObject();\n    try {\n        // Provide correct consent value to sdk which is obtained by User\n        consentObject.put(InMobiSdk.IM_GDPR_CONSENT_AVAILABLE, true);\n        // Provide 0 if GDPR is not applicable and 1 if applicable\n        consentObject.put("gdpr", "1");\n        // Provide user …
Run Code Online (Sandbox Code Playgroud)

android inmobi gdprconsentform

7
推荐指数
1
解决办法
1767
查看次数

isIgnoringBatteryOptimizations不适用于Samsung

我正在测试我的新应用,但是我遇到了问题

isIgnoringBatteryOptimizations

特征。

当应用程序启动时,它会检查该应用程序是否已列入Doze的白名单。如果不是,它会向用户显示一条消息,因为该应用程序需要运行并且不能被杀死。

它适用于多种设备和仿真器,但我有2台SAMSUNG设备用于测试,在那些情况下,isIgnoringBatteryOptimizations的值始终为false。无论用户做什么(将应用程序添加到打do睡的忽略列表等所有操作),应用程序始终认为该应用程序已优化,因此始终显示警告消息。有什么想法对那些三星设备有什么问题吗?

这是我使用的代码:

PowerManager oPowerManager = (PowerManager) MyContext.getSystemService(Context.POWER_SERVICE);
boolean b = oPowerManager.isIgnoringBatteryOptimizations( MyContext.getPackageName() );
Run Code Online (Sandbox Code Playgroud)

对于我测试过的三星设备,“ b”始终为假。

android-doze-and-standby

6
推荐指数
1
解决办法
1566
查看次数

引导设备时,我的启动器应用启动两次

我已经创建了启动器应用程序。一切正常,但启动设备时出现错误。如果我关闭手机,然后再打开手机,我发现该应用程序启动了2次,并且两者都大约在同一时间启动。有什么帮助吗?

我在清单中有这个:

<application       
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.testing"

        android:launchMode="singleTask"
        android:clearTaskOnLaunch="true"
        android:stateNotNeeded="true"                 

        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" /> 
            <category android:name="android.intent.category.HOME"/> 
            <category android:name="android.intent.category.DEFAULT" />                 
        </intent-filter>
    </activity>
    .....
Run Code Online (Sandbox Code Playgroud)

当然,我不使用任何android.intent.action.BOOT_COMPLETED

开机后出现错误,我的应用程序关闭。然后,如果我按“主页”按钮,它将正常启动(仅它的一个实例),并且一切正常。

android android-launcher

5
推荐指数
1
解决办法
924
查看次数

取消SetAlarmClock设置的闹钟

我使用它创建了一个警报AlarmManager.setAlarmClock(AlarmClockInfo, pendingIntent)并且它有效。系统还在屏幕的右上角显示闹钟。

到目前为止,一切都很好,但是我怎样才能取消那个警报呢?我尝试使用AlarmManager.cancel(),但右上角的图标仍然存在。任何想法?假设用户不想再安排任务,所以图标应该消失......

提示:Cancel() 似乎会取消由 Set、SetExact、SetAllowWhileIdle...以及所有这些创建的警报。但这里我谈论的是 setAlarmClock(),这是一个不同的故事。

android setalarmclock

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

滑块按钮接受Android中的通话

我想为来电开发我自己的接受和拒绝按钮.为了防止在将手机从口袋中取出时意外接听或拒绝来电,我想制作滑盖式按钮或类似的东西.我是,接受电话不仅仅是点击"接受"按钮.这更像是从左到右(或相反)滑动手指,让按钮随着时刻变宽.就像Android一样.

有没有办法做到这一点?任何提示?

我希望能够清楚.

android button slide

4
推荐指数
1
解决办法
5050
查看次数

对于类型Notification,方法setPriority(int)未定义

从Jelly Bean开始,可以为通知设置优先级.这样您甚至可以设置PRIORITY_MIN,这将隐藏状态栏上的通知图标.我读到它并且非常简单,你只需要使用它:

MyNotification.setPriority(Notification.PRIORITY_MIN);
Run Code Online (Sandbox Code Playgroud)

我的问题是我得到了编译错误: "方法setPriority(int)未定义类型通知"

我的应用程序必须在不同版本的Android中运行,所以,我知道JellyBean下没有这个功能,所以有没有办法包含编译器标签或类似的东西,根据Android版本添加该功能.我希望你明白我的意思.

notifications android

3
推荐指数
1
解决办法
7639
查看次数

Android Gradle无法解决

我在gradle文件中收到此错误:

错误:无法解决:com.google.android.gms:play-services-measurement:10.2.4

- 安装存储库和同步项目

-打开文件

- 在"项目结构"对话框中显示

但我不在我的应用程序中使用play-services-measurement.另一方面,如果我点击"安装存储库和同步项目"链接,则没有任何反应.有人可以帮我这个吗?我一直在浪费这个问题的日子.

这是我的完整gradle文件:

apply plugin: 'com.android.application'    

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.gms:google-services:3.0.0'
    }
}



android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    compileOptions {
        encoding "UTF-8"
    }


    lintOptions {
        disable 'MissingTranslation'
        abortOnError false
    }

    defaultConfig {
        applicationId "xxx.yyy.zzz"
        minSdkVersion 9
        targetSdkVersion 25
        versionCode 120
        versionName "1.20"
        multiDexEnabled true
        //Enabling multi dex support due to exceeding the 65K methods dex limit imposed by Android: http://stackoverflow.com/questions/29756188/java-finished-with-non-zero-exit-value-2-android-gradle
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles …
Run Code Online (Sandbox Code Playgroud)

android-studio android-gradle-plugin

3
推荐指数
1
解决办法
2374
查看次数