AMcoder - javascript, python, java, html, php, sql

Ինչպե՞ս տագնապի կառավարիչով փոխանցել տողը հիմնական գործունեությունից հեռարձակման ընդունիչին:

Ես ստեղծում եմ հավելված ազդանշանային մենեջերի և հեռարձակման ընդունիչի հետ և ուզում եմ փոխանցել տողը հիմնական գործունեությունից դեպի հանրային դաս MyScheduleReceiver extends BroadcastReceiver (ես ունեմ տագնապի կառավարիչ ներսում) և այնուհետև MyStartServiceReceiver-ը ընդլայնում է BroadcastReceiver-ը տվյալների փոխանցման ստատիկ ֆունկցիայի համար: հիմնական գործունեությունը պահպանել այս փոփոխականը խմբագրման տուփից՝ ընդհանուր նախապատվություններով: Բայց ես չեմ կարող օգտագործել ընդհանուր նախապատվությունը ստացողի ներսում: Ինչպե՞ս կարող եմ դա անել:

 public class MyScheduleReceiver extends BroadcastReceiver {
 public void onReceive(Context context, Intent intent) {

  int theHour = intent.getIntExtra("AlarmHour", 0);  
  int theMinute= intent.getIntExtra("AlarmMin", 0); 

AlarmManager service = (AlarmManager) context
    .getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyStartServiceReceiver.class);
PendingIntent pending = PendingIntent.getBroadcast(context, 0, i,
    PendingIntent.FLAG_CANCEL_CURRENT);

i.putExtra("data","1");

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());

cal.set(Calendar.HOUR_OF_DAY, theHour);  // set user selection
cal.set(Calendar.MINUTE, theMinute); 
cal.set(Calendar.SECOND, 0);

service.set(AlarmManager.RTC_WAKEUP,
    cal.getTimeInMillis(), pending);

}


public class MyStartServiceReceiver extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {

  Intent service = new Intent(context, AlarmService.class);

 context.startService(service);

 String result = intent.getStringExtra("data");

 String msg=result;
 try {

    ArduBtTimer.sendData(msg);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
30.01.2013

  • Դուք պետք է ավելացնեք լարային արժեքը առկախ մտադրության մեջ և ստացեք այդ արժեքը ստանալուց հետո 30.01.2013
  • Ինչպե՞ս կարող եմ դա անել: Որոշ կոդ: 30.01.2013
  • Դուք արդեն արել եք մտադրություններով և ստանում եք ստացողի մեջ 30.01.2013
  • i.putExtra (տվյալներ, 1); 30.01.2013
  • i.putExtra (տվյալներ, ձեր տողը); և ստանալ String արժեքով = getIntent().getStringExtra(տվյալներ); 30.01.2013
  • Ես սխալ ունեմ getIntent() մեթոդի ստեղծման համար 30.01.2013
  • դուք ուզում եք ընդամենը 1 արժեք, և String արդյունքի համար սխալ չունեք: 30.01.2013
  • Երբ ես դնում եմ String result=intent.getStringExtra(); ոչ մի սխալ, բայց ոչ աշխատանք... 30.01.2013
  • Ես պետք է ավելացնեմ Intent-ին հավելյալները, նախքան այն փոխանցեք PendingIntent-ին 30.01.2013
  • տպեք այդ արժեքը և տեսեք, թե ինչ է տեղի ունենում?? կամ ցույց է տալիս զրոյական արժեք 30.01.2013

Պատասխանները:


1

փորձեք այս:

 where u want to set value:
 i.putExtra("data",yourstring); 
 and for recieve: 
 String value = intent.getStringExtra("data");
30.01.2013

2

Կարծում եմ, դուք պետք է ուղարկեք այն տեղեկատվությունը, որը ցանկանում եք պահպանել՝ օգտագործելով BroadCastReceiver-ը և այնտեղ պահեք այն SP-ով:

Ահա ստացողից գործունեություն տեղեկատվություն ուղարկելու օրինակ.

  1. Ստեղծեք ներքին դաս, որը ընդլայնում է BroadcastReceiver այն գործունեության մեջ, որտեղ ցանկանում եք ստանալ ձեր տվյալները՝

    private BroadcastReceiver ReceivefromService = new BroadcastReceiver(){
        @Override
        public void onReceive(Context context, Intent intent)
        {
            //get the data using the keys you entered at the service
            String IncomingSms=intent.getStringExtra("incomingSms");//
            String phoneNumber=intent.getStringExtra("incomingPhoneNumber");
    
        }
    };
    
  2. Ավելացնել սա onPause()-ին:

    @Override
    protected void onPause() {
        super.onPause();
        try {
            unregisterReceiver(ReceivefromService);
        } catch (IllegalArgumentException e) {
            if (e.getMessage().contains("Receiver not registered")) {
                Log.i("TAG","Tried to unregister the reciver when it's not registered");
            }
            else
            {
                throw e;
            }
        }
    }
    
  3. Ավելացնել սա onResume()-ին:

    protected void onResume() {
        super.onResume();
        filter.addAction("android.intent.action.SmsReceiver");
        registerReceiver(ReceivefromService, filter);
        //the first parameter is the name of the inner class we created.
    }
    
  4. Ստացողի/ծառայության ներսում ստեղծեք մտադրություն, որը հեռարձակումն սկսում է այսպես.

    Intent i = new Intent("android.intent.action.SmsReceiver").putExtra("incomingSms", message);
    i.putExtra("incomingPhoneNumber", phoneNumber);
    context.sendBroadcast(i);
    

հուսով եմ, որ դա կօգնի ձեզ ...

09.03.2014
Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..