Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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
Android 本地通知不起作用如何修复它_Android_Android Studio_Sdk_Emulation - Fatal编程技术网

Android 本地通知不起作用如何修复它

Android 本地通知不起作用如何修复它,android,android-studio,sdk,emulation,Android,Android Studio,Sdk,Emulation,} 这是MainActivity.java 当我单击“显示通知”按钮时,我已将此代码用于不带firebase的本地通知。它不起作用。问题是什么以及如何解决。我找不到任何错误,但输出不起作用。任何人都可以解决我的问题,请查看并帮助我。您的代码似乎很好 很可能,您正在Oreo或更高版本的设备上使用此代码 您缺少必须在Oreo和更高版本上使用通知通道的部分 下面是您的代码转换成的代码片段,可用于所有版本 EditText nameET,ageET; Spinner spinner; Button lo

} 这是MainActivity.java 当我单击“显示通知”按钮时,我已将此代码用于不带firebase的本地通知。它不起作用。问题是什么以及如何解决。我找不到任何错误,但输出不起作用。任何人都可以解决我的问题,请查看并帮助我。

您的代码似乎很好

很可能,您正在Oreo或更高版本的设备上使用此代码

您缺少必须在Oreo和更高版本上使用通知通道的部分

下面是您的代码转换成的代码片段,可用于所有版本

EditText nameET,ageET;
Spinner spinner;
Button login;
Button btn;
String[] genderArray = {"Male","Female"};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    nameET = findViewById(R.id.nameET);
    ageET = findViewById(R.id.ageET);
    spinner = findViewById(R.id.spinnerId);
    btn = findViewById(R.id.btn);

    ArrayAdapter arrayAdapter = new ArrayAdapter(MainActivity.this,android.R.layout.simple_spinner_dropdown_item,genderArray);
    arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(arrayAdapter);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            makeNotification();
        }
    });
}
public void makeNotification(){
    NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this)
            .setContentTitle("Hi")
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentText("Collect your daily coins");

    Intent intent = new Intent(MainActivity.this,MainActivity.class);

    PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);

    builder.setContentIntent(pendingIntent);

    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    manager.notify(0,builder.build());
}
有关通知通道的详细信息,请参阅此链接。

EditText nameET,ageET;
Spinner spinner;
Button login;
Button btn;
String[] genderArray = {"Male","Female"};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    nameET = findViewById(R.id.nameET);
    ageET = findViewById(R.id.ageET);
    spinner = findViewById(R.id.spinnerId);
    btn = findViewById(R.id.btn);

    ArrayAdapter arrayAdapter = new ArrayAdapter(MainActivity.this,android.R.layout.simple_spinner_dropdown_item,genderArray);
    arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(arrayAdapter);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            makeNotification();
        }
    });
}
public void makeNotification(){
    NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this)
            .setContentTitle("Hi")
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentText("Collect your daily coins");

    Intent intent = new Intent(MainActivity.this,MainActivity.class);

    PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);

    builder.setContentIntent(pendingIntent);

    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    manager.notify(0,builder.build());
}
public class MainActivity extends AppCompatActivity {


    public static final String NOTIFICATION_CHANNEL_ID = "channel_id";
    public static final String CHANNEL_NAME = "Notification Channel";
    public static final int NOTIFICATION_ID = 101;
    NotificationManager notificationManager;


    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.btn);
        notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                createNotificationChannel();
                makeNotification();
            }
        });
    }

    private void createNotificationChannel() {

        int importance = NotificationManager.IMPORTANCE_DEFAULT;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, CHANNEL_NAME, importance);

            notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
            notificationManager.createNotificationChannel(notificationChannel);
        }

    }

    public void makeNotification() {
        NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this, NOTIFICATION_CHANNEL_ID)
                .setContentTitle("Hi")
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentText("Collect your daily coins");

        Intent intent = new Intent(MainActivity.this, ActivityOne.class);

        PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        builder.setContentIntent(pendingIntent);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            builder.setGroup(NOTIFICATION_CHANNEL_ID);
        }

        NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        manager.notify(0, builder.build());
    }
}