小编Mic*_*rte的帖子

Firebase通知白圈问题

我有一个问题Firebase Notification,如果我在应用程序在屏幕上运行时发送通知,则通知会正确显示,如下所示:

在此处输入图片说明

在此处输入图片说明

比起当我在后台运行应用程序时发送通知,通知显示如下:

在此处输入图片说明

在此处输入图片说明

这是我的FirebaseMessagingService

    public class AppFirebaseMessagingService extends FirebaseMessagingService {

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        sendNotification(remoteMessage);
    }

    private void sendNotification(RemoteMessage remoteMessage) {
        Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        int icon = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? R.drawable.ic_video_label_white_24dp: R.drawable.ic_launcher;
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this);
        notificationBuilder.setWhen(System.currentTimeMillis());
        notificationBuilder.setColor(ContextCompat.getColor(this, R.color.colorPrimary));
        notificationBuilder.setSmallIcon(icon);
        notificationBuilder.setContentTitle(remoteMessage.getNotification().getTitle());
        notificationBuilder.setContentText(remoteMessage.getNotification().getBody());
        notificationBuilder.setAutoCancel(true);
        notificationBuilder.setSound(defaultSoundUri);
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            Intent resultIntent = new Intent(this, MainActivity.class);
            TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
            stackBuilder.addParentStack(MainActivity.class);
            stackBuilder.addNextIntent(resultIntent);
            PendingIntent pendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
            notificationBuilder.setContentIntent(pendingIntent);
            notificationBuilder.setPriority(Notification.PRIORITY_HIGH);
        }

        NotificationManager notificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); …
Run Code Online (Sandbox Code Playgroud)

java android firebase firebase-cloud-messaging

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

备份/还原共享首选项Android

我正在尝试备份/还原我的应用程序的共享首选项,我使用Android备份服务执行了以下步骤:

Manifest.xml<application>标签

<meta-data android:name="com.google.android.backup.api_key" android:value="My Key" />
Run Code Online (Sandbox Code Playgroud)

添加了此类:

public class MyBackupAgent extends BackupAgentHelper {

    // The name of the SharedPreferences file
    static final String PREFS = "my_preferences";


    @Override
    public void onCreate() {
        SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, PREFS);
        addHelper(Utilities.SETTINGS_KEY, helper);
    }

}
Run Code Online (Sandbox Code Playgroud)

当将值设置为共享首选项时,我这样做:

BackupManager backupManager = new BackupManager(context);
backupManager.dataChanged();
Run Code Online (Sandbox Code Playgroud)

但是,如果我卸载/重新安装应用程序,更改将不适用...

java android sharedpreferences android-backup-service

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

无法从PreferenceFragment显示Snackbar

我想在Activity托管的PreferenceFragment中使用Snackbar onSharedPreferenceChange().

preference.xml

    <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="ll_main">
<PreferenceCategory android:title="@string/push_notification">
    <SwitchPreference android:title="@string/transectional_notification"
        android:key="trans_not"
        android:defaultValue="true"
        android:summary="@string/get_notified_about_any_changes_related_to_your_transections"/>
    <SwitchPreference android:title="@string/promotional_notification"
        android:key="prom_not"
        android:defaultValue="true"
        android:summary="@string/get_notified_about_referalls"/>
</PreferenceCategory>
    <PreferenceCategory android:title="@string/other_notifications">
        <SwitchPreference android:title="@string/email_notifications"
            android:defaultValue="true"
            android:key="email_not" />
        <SwitchPreference android:title="@string/sms_notifications"
            android:defaultValue="true"
            android:key="sms_not"/>
    </PreferenceCategory>
<PreferenceCategory android:title="@string/recommendation_setting">
    <com.til.recharger.widgets.PhoneEditTextPreference
        android:title="@string/mobile_no"
        android:inputType="number"
        android:summary="8587035342"
        android:key="mob_no_edit"/>
    <ListPreference android:title="@string/operator"
        android:summary="Airtel"
        android:key="operator_list"/>
    <ListPreference android:title="@string/circle"
        android:summary="New Delhi"
        android:key="circle_list"/>
    <ListPreference
        android:title="Plan type"
        android:entries="@array/listentries"
        android:entryValues="@array/listentries"
        android:summary="Postpaid"
        android:defaultValue="Prepaid"
        android:key="plan_key"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/plan_info">
    <com.til.recharger.widgets.NumberPickerPreference
        android:title="@string/bill_cycle"
        android:summary="2"
        android:persistent="true"
        android:key="bill_cycle_edit"/>
    <com.til.recharger.widgets.CustomEditTextPreference
        android:title="@string/monthly_data_limit"
        android:summary="%s"
        android:inputType="number"
        android:key="monthly_limit_edit"/>
    <ListPreference
        android:title="@string/preffered_network_type"
        android:entries="@array/mobiledataoptions"
        android:entryValues="@array/mobiledatavalues"
        android:summary="3G"
        android:defaultValue="3G"
        android:key="pref_data_list"/>
</PreferenceCategory>
</PreferenceScreen> …
Run Code Online (Sandbox Code Playgroud)

android preferencefragment android-snackbar

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

如何在泽西Rest Webservice中接受json数组输入

我正在使用Jersey.Am开发一个休息Web服务,这对于webservices来说是一个新的东西.我需要将客户列表作为输入传递给rest webservice.在实现它时遇到了问题.

下面是我的客户对象类

@Component
public class customer {
private String customerId;
private String customerName;
Run Code Online (Sandbox Code Playgroud)

我的终点如下.addCust是调用webservice时调用的方法

    @Path("/add")
    @Produces({MediaType.APPLICATION_JSON})
    @Consumes({MediaType.APPLICATION_JSON})
    public String addCust(@Valid customer[] customers){

    //And json input is as below
    {customers:{"customerId":"1","customerName":"a"},
    {"customerId":"2","customerName":"b"}}
Run Code Online (Sandbox Code Playgroud)

但是球衣无法将json阵列转换为客户阵列.它返回400.日志显示"c没有可行的选择".如何将Json数组作为输入传递给webservice并转换为Array或ArrayList.任何帮助赞赏.

java rest json web-services jersey

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

Plus.PeopleApi.getCurrentPerson()返回null而不再返回

我搜索了很多但仍然没有得到解决方案.Plus.PeopleApi.getCurrentPerson()总是返回null.我得到了调试SHA1并释放了SHA1.它们都作为具有正确包名的OAuth 2.0客户端ID添加到控制台.(遗憾的是,我无法发布图片)这是我的GoogleApiClient:

    private GoogleApiClient buildGoogleApiClient() {
    return new GoogleApiClient.Builder(getContext())
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Plus.API)
            .addScope(new Scope(Scopes.PROFILE))
            .addScope(new Scope(Scopes.PLUS_LOGIN))
            .build();
}
Run Code Online (Sandbox Code Playgroud)

很简单.我从Fragment的onCreateView()中调用它.然后我想找到当前的人:

@Override
public void onConnected(Bundle bundle) {
    Plus.PeopleApi.loadVisible(mGoogleApiClient, null).setResultCallback(this);

    if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) {
        Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
        String personName = currentPerson.getDisplayName();
        String personGooglePlusProfile = currentPerson.getUrl();
    }
Run Code Online (Sandbox Code Playgroud)

并且总是空的.mGoogleApiClient工作正常,它连接,它不是null,但仍然.在控制台 - >启用了Apis Google+ API,但"使用情况"标签中没有任何请求.

我尝试了所有可以找到的解决方案而没有任何帮助.我用geny模拟器运行应用程序.拜托,帮帮我,给我任何想法.

补充:这是我几乎完整的Fragment类:

    public class AuthorizationFragment2 extends Fragment implements
        GoogleApiClient.ConnectionCallbacks,
        GoogleApiClient.OnConnectionFailedListener,
        View.OnClickListener,
        ResultCallback {
    private static final String KEY_IS_RESOLVING = "is_resolving";
    private static final String KEY_SHOULD_RESOLVE = "should_resolve";
    /* Request code …
Run Code Online (Sandbox Code Playgroud)

android google-api

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

"从调用setter for property"时出现"IllegalArgumentException",从sqlserver numeric到java对象

我已经有这样的错误,当你尝试执行不合适的匹配(日期到布尔,等等),我已经能够很容易地修复.

但是这一次,我很困惑,因为hibernate拒绝将"数字"Id与Java"Long"相匹配(并且当为Double,Integer,Float,String,int,long等设置setter时它也失败了)

sql-server字段"id"是一个NUMERIC(19,0)

我的DTO是:

@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
public class DtoResult {

private Long id;
private String name;
// ...


public Long getId() {
    return id;
}
public void setId(final Long id) {
    this.id = id;
}   
public String getName() {
    return name;
}
public void setName(final String name) {
    this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)

我的hibernate查询:

    final SQLQuery query= getCurrentSession().createSQLQuery(select + from + where);

    query.setParameter("manyFields", manyFields);
        query
        .addScalar("id")
        .addScalar("name")
        .setResultTransformer(Transformers.aliasToBean(DtoResult.class));

    return query.list(); // List<DtoResult>
Run Code Online (Sandbox Code Playgroud)

错误:

IllegalArgumentException  occurred while calling setter for …
Run Code Online (Sandbox Code Playgroud)

java sql-server hibernate

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

JavaFX布局对齐,相当于GridBagLayout

我想知道是否有人对JavaFX 8有很多经验.我正在做一些表格布局并且需要对齐它们(我是用这个东西强调OCD).我知道在Swing中我可以使用GridBagLayout,但是这不再适用了,我可以设置权重而不是,但我不认为我可以用GridPane做到这一点,JavaFX中有没有相同的东西?

我无法发布图片,因此我将其链接到目前的样子,并突出显示了一些不是我想要的区域.

https://gyazo.com/c112ab623ffd66e6f723eb9be1fcaea9

该代码之前也可用

    public class ControlsPanel extends GridPane {
    private TextField[] buttons;
    private TextField[] miscTextFields;

    private Label[] labels;

    private Button startSimBtn;

    private TabPane tabPane;
    private Tab cooperatorTab, defectorTab;
    private final int PADDING = 5;
    private final String[] v = 
        {
            "C_A_N", "C_A_PD", 
            "C_A_PN", "C_N_N", 
            "C_N_PD", "C_N_PN", 
            "D_A_N", "D_A_PD",
            "D_A_PN", "D_N_N",
            "D_N_PD", "D_N_PN"
        };
    private final String[] miscTfLabelValues = 
    {
            "Apology cost: ", "Noise level: ", "Punishmment Cost: ", "Punished Cost: "
    };

    public ControlsPanel() 
    {
        buttons = new …
Run Code Online (Sandbox Code Playgroud)

java user-interface javafx

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

对于循环,如果内部不工作

我正在学习,我有问题,我应该从用户那里获得一个IP地址,然后从最右边的数字迭代它,如果那个数字将等于或大于256,那么我应该迭代数字-1的地方在此之前,这个设置为0.

我试图通过简单地创建原始代码来解决它,它只会通过用户输入执行一次,之后我会添加更多复杂性,如原始多次迭代,错误检查并将代码放入propper .java文件和类中.我知道使用ArrayList会更好,但我打算稍后添加ArrayList而不是simple Array.

任何人都可以告诉我为什么当我不试图迭代"我"时,带有条件的循环放在outofarraybound异常?

    for (i = 3; i >= 0; i--) {
        pomoc = zasobnikIPadresa[i];

        if (pomoc > 255) {              
            zasobnikIPadresa[i] = 0;
            zasobnikIPadresa[i-1] = pomoc + 1;
        }           
    }   
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能够分析我没有适当的Arrays知识,我认为我的问题的解决方案将帮助我完成我的问题并更好地理解它们.

到目前为止这里是完整的代码:

    package com.ipadresa.classes;

    import java.util.Scanner;

    public class Hlavni {

    public static void main(String[] args) {

        int i = 0;

        int[] zasobnikIPadresa = new int[4];        
        Scanner ctecka = new Scanner(System.in);

        for (i = 0; i < zasobnikIPadresa.length; i++) {
            zasobnikIPadresa[i] = ctecka.nextInt();
        }

        System.out.print("Original IP adress: ");
        for …
Run Code Online (Sandbox Code Playgroud)

java

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