Ich möchte mein Klingeltonvolumen zu bestimmten Zeitpunkt jeden Tag ändern. Ich habe einen Kalender verwendet, um die Uhrzeit anzugeben, und ich versuche den AlarmManager zu benutzen, um ihn auszuführen. Hier ist was ich habe. (Ich bin ein noobie gehen einfach auf mich)Android-Zeitplan Aufgabe zu bestimmter Zeit täglich
package com.example.ringervolume.app;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import java.util.Calendar;
public class MainActivity extends ActionBarActivity {
private AudioManager audio;
private PendingIntent pendingIntentam;
private PendingIntent pentdingIntentpm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textViewTime = (TextView) findViewById (R.id.textTime);
audio = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
//ringer volume for the am.
Calendar calendaram = Calendar.getInstance();
calendaram.set(Calendar.HOUR_OF_DAY, 21);
calendaram.set(Calendar.MINUTE, 32);
calendaram.set(Calendar.SECOND, 0);
calendaram.set(Calendar.AM_PM,Calendar.PM);
Intent myIntent = new Intent(MainActivity.this, MyReceiver.class);
pendingIntentam = PendingIntent.getBroadcast(MainActivity.this, 0,myIntent,0);
AlarmManager alarmManageram = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManageram.set(AlarmManager.RTC, calendaram.getTimeInMillis(), pendingIntentam);
}
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent scheduledIntent = new Intent(context, myscheduleactivity.class);
scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(scheduledIntent);
}
}
public class myscheduleactivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
audio.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Was ist falsch mit deinem Code? – Raghunandan
Ich habe vergessen, es hinzuzufügen, im Grunde wird es die Lautstärke nicht zu der Zeit vibrieren, die ich angegeben habe. – andyADD
Sie haben eine andere Aktivität als innere Klasse der aktuellen Aktivität. Verschieben Sie es in eine separate '.java'-Datei. Sehen Sie auch, ob Sie den Broadcastempfänger registriert haben. – Raghunandan