获取 receive() 方法上的按钮操作,该方法是广播接收器的一种方法,但它显示 null



我正在通过getaction方法获取按钮的操作receive()该方法是一种广播接收器的方法,但它的 sho 为空,请告诉我我在此做什么才能获得一个不为空的值+我的通知方法如下

private void Notify(String notificationTitle, String notificationMessage) 
    {
        String ns=Context.NOTIFICATION_SERVICE;
        NotificationManager notificationManager=(NotificationManager)getSystemService(ns);
        @SuppressWarnings("deprecation")
        Notification notification=new Notification(R.drawable.bg,"Time",System.currentTimeMillis());
        RemoteViews notificationView=new RemoteViews(getPackageName(),R.layout.main);
        Intent notificationIntent=new Intent(this,PlayerAudioActivity.class);
        PendingIntent pendingNotificationIntent=PendingIntent.getActivity(this, 0, notificationIntent, 0);
        notification.contentView=notificationView;
        notification.flags|=Notification.FLAG_NO_CLEAR;
        //supposed button call intent
        Intent switchIntent=new Intent(this,MyReceiver.class);
        PendingIntent pendingIntent=PendingIntent.getBroadcast(this, 0, switchIntent, 0);
        notificationView.setOnClickPendingIntent(R.id.btnPrevious, pendingIntent);
        notificationManager.notify(1, notification);
    }

-我的广播接收器类正在关注

public class MyReceiver 
extends BroadcastReceiver {
    private static final String TAG = "waaaawoooooooooOOOOOOjnjkhdfku";
    public void onReceive(Context context, Intent intent) {
         final String action=intent.getAction();
        // if(AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)){
        Log.d(TAG, ""+action);
//           Bundle extras=intent.getExtras();
//           String ieString=extras.getString("Locale");
    //       try{
//               final int Appwidgid=extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,AppWidgetManager.INVALID_APPWIDGET_ID);
//               if(Appwidgid!=AppWidgetManager.INVALID_APPWIDGET_ID)
//               {
//                   this.onDeleted(context, new int[] { Appwidgid });
//               }
//            else {
//                onReceive(context, intent);
//                 }
//              context.startService(new Intent(context,PlayerAudioActivity.class));
//              Log.i(TAG,"Starting Service ConnectivityListener");
//          }catch(Exception e){
//              Log.e(TAG,e.toString());
//          }
//       }
    }
    private void onDeleted(Context context, int[] is) {
        // TODO Auto-generated method stub
    }
}

+清单文件如下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.Audio.audioplayer"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
       <receiver android:name=".MyReceiver" android:enabled="true">
 <intent-filter>        
<action android:name="android.net.wifi.WIFI_STATE_CHANGED"/><action   
android:name="android.net.conn.CONNECTIVITY_CHANGE"/><action  
android:name="android.net.conn.DATA_ACTIVITY_CHANGE"/>
</intent-filter>
</receiver>
        <activity
            android:name="com.Audio.audioplayer.PlayerAudioActivity"
            android:label="@string/app_name" 
            android:screenOrientation="portrait"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <data android:scheme="tel" />
            </intent-filter>
        </activity>
        <activity
            android:name=".PlayListActivity"
            android:label="@string/app_name" 
            android:screenOrientation="portrait" 
            >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.Audio.audioplayer.PlayerAudioActivity" />
        </activity>
    </application>
</manifest>

正如本文中提到的adamp,您无法访问未设置的意图的操作:

{...}
//supposed button call intent
Intent switchIntent=new Intent(this, MyReceiver.class);
PendingIntent pendingIntent=PendingIntent.getBroadcast(this, 0, switchIntent, 0);
{...}

您必须使用 setAction(( 将指定的操作添加到该意图中。

像这样:

{...}
Intent switchIntent=new Intent(this, MyReceiver.class);
switchIntent.setAction("YOUR_ACTION");
PendingIntent pendingIntent=PendingIntent.getBroadcast(this, 0, switchIntent, 0);
{...}

PS:只是伪代码

相关内容

最新更新