2015-10-16 8 views
0

Я использовал этот код в BroadcastReceiver, но здесь телефония не может быть решена. как я могу использовать Telephony здесь в BroadcastReceiver? Я думаю, что это из-за использования этого в BroadcastReceiver.Телефония не может быть решена

public class SmsFilter extends BroadcastReceiver { 
SharedPreferences preferences = null ; 
    Context context; 
    static ContentResolver ctx; 
    String text; 


@Override 
public void onReceive(final Context context, Intent intent) { 


    if(android.os.Build.VERSION.SDK_INT>= 4.0){ 

     Log.i("LOG", "this is: "+Build.VERSION.RELEASE);  
     final String myPackageName = context.getPackageName(); 
     if (!Telephony.Sms.getDefaultSmsPackage(this).equals(myPackageName)) { 
      // App is not default. 
      // Show the "not currently set as the default SMS app" interface 
      View viewGroup = findViewById(R.id.not_default_app); 
      viewGroup.setVisibility(View.VISIBLE); 

      // Set up a button that allows the user to change the default SMS app 
      Button button = (Button) findViewById(R.id.change_default_app); 
      button.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        Intent intent = 
          new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); 
        intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, 
          myPackageName); 
        context.startActivity(intent); 
       } 
      }); 
     } else { 
      // App is the default. 
      // Hide the "not currently set as the default SMS app" interface 
      View viewGroup = findViewById(R.id.not_default_app); 
      viewGroup.setVisibility(View.GONE); 
     } 





      }}} 

ответ

0

Вместо Telephony.Sms.getDefaultSmsPackage(this) вам нужно Telephony.Sms.getDefaultSmsPackage(context). В вашем случае this относится к BroadcastReceiver, и метод ожидает аргумент context.

Смежные вопросы