При нажатии android виджет вызывает некоторые функции, которые присутствуют в MainActivity - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу знать, как связать виджет и активность в android, чтобы, щелкая виджет, вызывать только функцию ios для выполнения работы, но Не запускать действие , что-то похожее, когда мы нажимаем Bluetooth в панели уведомлений он просто открывает Bluetooth или закрывает Bluetooth без входа в это приложение Bluetooth ...... Заранее спасибо :) ОБНОВЛЕНО :: Ниже приведен основной код активности.

imageFlashlight.setOnClickListener(new View.OnClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
            @Override
            public void onClick(View view) {

                if (finalHasCameraFlash) {
                    if (flashLightStatus)
                        flashLightOff();
                    else
                        flashLightOn();
                } else {
                    Toast.makeText(MainActivity.this, "No flash available on your device",
                            Toast.LENGTH_SHORT).show();
                }
            }
        });

Код ниже - это код моего виджета ...

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
                             int appWidgetId) {

    // Construct the RemoteViews object
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.app_widget);
    // Construct an Intent object includes web adresss.
    Intent intent = new Intent(context, MainActivity.class);

    // In widget we are not allowing to use intents as usually. We have to use PendingIntent instead of 'startActivity'
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);


    // Here the basic operations the remote view can do.
    views.setOnClickPendingIntent(R.id.tvWidget, pendingIntent);
    // Instruct the widget manager to update the widget
    appWidgetManager.updateAppWidget(appWidgetId, views);
}

ОБНОВЛЕНО: Как вы можете видеть, я хочу обработать две функции, щелкнув виджет Без входа в действие, просто нажав ..

1 Ответ

0 голосов
/ 04 февраля 2020

Вы можете попробовать отправить Broadcast как

Intent broadcastIntent=new Intent(this,BroadcastReceiver.class); //use .getBroadcast instead of getActivity and start a service when u receive this //broadcast PendingIntent pendingBroadcastIntent = PendingIntent.getBroadcast(context, 7, broadcastIntent, 0) //set this pendingIntent on widget

. Метод PendingIntent.getBroadcast() поможет. Не забудьте запустить службу, когда вы получаете эту трансляцию, вы также можете установить действие для намерения, используя broadcastIntent.setAction(YOUR_ACTION).

С уважением, Karya

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...