Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 异常错误_Java_Android_Broadcastreceiver_Android Pendingintent - Fatal编程技术网

Java 异常错误

Java 异常错误,java,android,broadcastreceiver,android-pendingintent,Java,Android,Broadcastreceiver,Android Pendingintent,我开发了一个应用程序,它可以将设备切换到静默模式,并在用户设定的给定时间内恢复正常。用户将输入事件名称,然后输入开始和结束时间,然后单击创建按钮创建事件。我运行了应用程序,用户在此时选择开始时间。我的应用程序崩溃并抛出一个我无法理解的异常。我正在发布下面的相关代码和异常错误 异常错误 10-22 19:13:52.538 13334-13334/applications.recyclerview1 E/AndroidRuntime: FATAL EXCEPTION: main

我开发了一个应用程序,它可以将设备切换到静默模式,并在用户设定的给定时间内恢复正常。用户将输入事件名称,然后输入开始和结束时间,然后单击创建按钮创建事件。我运行了应用程序,用户在此时选择开始时间。我的应用程序崩溃并抛出一个我无法理解的异常。我正在发布下面的相关代码和异常错误

异常错误

10-22 19:13:52.538 13334-13334/applications.recyclerview1 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                        Process: applications.recyclerview1, PID: 13334
                                                                        java.lang.ArrayIndexOutOfBoundsException: length=17; index=19
                                                                            at java.util.Calendar.get(Calendar.java:903)
                                                                            at applications.recyclerview1.MainActivity$3.onTimeSet(MainActivity.java:95)
                                                                            at android.app.TimePickerDialog.onClick(TimePickerDialog.java:133)
                                                                            at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:163)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                            at android.os.Looper.loop(Looper.java:135)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5669)
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at java.lang.reflect.Method.invoke(Method.java:372)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
10-22 19:13:52.588 13334-13334/applications.RecycleServiceW1 I/进程:发送信号。PID:13334信号:9 MainActivity.java

public void start(View view)
{
    // Get Current Time
    Calendar c = Calendar.getInstance();
    mHour = c.get(Calendar.HOUR_OF_DAY);
    mMinute = c.get(Calendar.MINUTE);

   final Calendar newobj=Calendar.getInstance();

    // Launch Time Picker Dialog
    TimePickerDialog timePickerDialog = new TimePickerDialog(this,
            new TimePickerDialog.OnTimeSetListener() {

                @Override
                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {


                    start.setText(hourOfDay + ":" + minute);
                    newobj.get(hourOfDay);
                    newobj.get(minute);

                    AlarmManager am = (AlarmManager) MainActivity.this.getSystemService(ALARM_SERVICE);

                    //create a pending intent to be called at midnight
                    Toast.makeText(MainActivity.this, "Pending Intent started", Toast.LENGTH_LONG).show();
                    PendingIntent midnightPI = PendingIntent.getService(MainActivity.this, 0, new Intent("applications.recyclerview1.SilenceBroadCastReceiver"), PendingIntent.FLAG_UPDATE_CURRENT);

                    //schedule time for pending intent, and set the interval to day so that this event will repeat at the selected time every day

                    am.setRepeating(AlarmManager.RTC_WAKEUP, newobj.getTimeInMillis(), AlarmManager.INTERVAL_DAY, midnightPI);

                }
            }, mHour, mMinute, false);
    timePickerDialog.show();
}

public void end(View view)
{
    // Get Current Time
    Calendar c = Calendar.getInstance();
    mHour = c.get(Calendar.HOUR_OF_DAY);
    mMinute = c.get(Calendar.MINUTE);

    final Calendar newobj2=Calendar.getInstance();

    // Launch Time Picker Dialog
    TimePickerDialog timePickerDialog = new TimePickerDialog(this,
            new TimePickerDialog.OnTimeSetListener() {

                @Override
                public void onTimeSet(TimePicker view, int hourOfDay,
                                      int minute) {

                    end.setText(hourOfDay + ":" + minute);
                    newobj2.get(hourOfDay);
                    newobj2.get(minute);


                    AlarmManager am = (AlarmManager) MainActivity.this.getSystemService(ALARM_SERVICE);

                    PendingIntent sixPI = PendingIntent.getService(MainActivity.this, 0, new Intent("applications.recyclerview1.UnsilenceBroadcastReceiver"), PendingIntent.FLAG_UPDATE_CURRENT);

                    //schedule time for pending intent, and set the interval to day so that this event will repeat at the selected time every day

                    am.setRepeating(AlarmManager.RTC_WAKEUP, newobj2.getTimeInMillis(), AlarmManager.INTERVAL_DAY, sixPI);

                }
            }, mHour, mMinute, false);
    timePickerDialog.show();
}
雄激素单

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="applications.recyclerview1">

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".View_Foods"></activity>
    <receiver android:name=".SilenceBroadCastReceiver">

        <intent-filter>

            <action android:name="applications.recyclerview1.SilenceBroadCastReceiver" >

            </action>

        </intent-filter>

    </receiver>

    <receiver android:name=".UnsilenceBroadcastReceiver">

        <intent-filter>

            <action android:name="applications.recyclerview1.UnsilenceBroadcastReceiver" >

            </action>

        </intent-filter>

    </receiver>
</application>
UnsilentBroadCastReceiver.java

public class SilenceBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    AudioManager audio=(AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);
}}
public class UnsilenceBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    AudioManager audio=(AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
}}

对于所需的流程,请尝试以下方法:

    Calendar calender = Calendar.getInstance();
    myTimePicker = new TimePickerDialog(this, new OnTimeSetListener() {

        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {


            Calendar newTime = Calendar.getInstance();

            //newTime.set(hourOfDay, minute); // remove this line

            //Add these two line
            newTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
            newTime.set(Calendar.MINUTE, minute);

            GotTime = GotDate + " At " + String.valueOf(hourOfDay) + " :" + String.valueOf(minute + 1);
            time.setText(GotTime);
        }
    }, calender.get((Calendar.HOUR_OF_DAY)), calender.get(Calendar.MINUTE), true);
}

对于所需的流程,请尝试以下方法:

    Calendar calender = Calendar.getInstance();
    myTimePicker = new TimePickerDialog(this, new OnTimeSetListener() {

        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {


            Calendar newTime = Calendar.getInstance();

            //newTime.set(hourOfDay, minute); // remove this line

            //Add these two line
            newTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
            newTime.set(Calendar.MINUTE, minute);

            GotTime = GotDate + " At " + String.valueOf(hourOfDay) + " :" + String.valueOf(minute + 1);
            time.setText(GotTime);
        }
    }, calender.get((Calendar.HOUR_OF_DAY)), calender.get(Calendar.MINUTE), true);
}

异常stacktrace在哪里?您应该以文本形式发布错误日志。@DimaKozhevin我添加了日志,它的格式不好,但请告诉我错误日志在哪里mistake@zainulabidin感谢您改进您的问题。欢迎@DimaKozhevin找到任何解决方案?您的异常stacktrace在哪里?您应该将带有错误的日志发布为文本。@DimaKozhevin我已经添加了日志,它的格式不好,但是请告诉我日志在哪里mistake@zainulabidin谢谢你改进了你的问题。欢迎@DimaKozhevin有任何解决方案吗?但不知怎么的,我的设备当时并没有静音。你能帮我一下吗?我正在以newTime.gettimeinmillisb的形式传递newTime不知怎的,当时我的设备没有静音。你能帮我一下吗?我正在以newTime.gettimeinmillis的形式传递我的等待意图中的newTime