【发布时间】:2020-07-23 12:29:55
【问题描述】:
我最近收到一封来自谷歌开发者支持的电子邮件,说我的应用已被拒绝,并且由于违反政策而未发布,更具体地说是“用户退出应用后出现的插页式广告”。所以我想要在应用程序关闭后阻止这个烦人的插页式广告出现。我很感激你能帮我解决这个问题。您会在下面找到我的 HomeActivity 代码,它强调了问题所在。
这是我的家庭活动代码:
//import com.google.ads.AdRequest;
public class HomeActivity extends AppCompatActivity {
ViewPager Tab;
ActionBar actionBar;
//popup window
Dialog myDialog;
private InterstitialAd mInterstitialAd;
boolean exitApp = false;
// new
BottomNavigationView bottomNavigationView;
//This is our viewPager
private ViewPager viewPager;
//Fragments
AboutFragment aboutFragment;
AndoidFragment andoidFragment;
BlogFragment blogFragment;
MenuItem prevMenuItem;
// emd of new
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
lunchInter();
loadInterstitial();
//popup Window
myDialog = new Dialog(this);
ImageButton Contact;
Contact = (ImageButton) findViewById(R.id.popupContact);
Contact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ShowContactUs();
}
});
//Initializing viewPager
viewPager = (ViewPager) findViewById(R.id.viewpager);
//Initializing the bottomNavigationView
bottomNavigationView = (BottomNavigationView)findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.action_home:
viewPager.setCurrentItem(0);
break;
/* case R.id.action_articals:
viewPager.setCurrentItem(1);
break;*/
case R.id.action_about:
viewPager.setCurrentItem(2);
break;
}
return false;
}
});
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (prevMenuItem != null) {
prevMenuItem.setChecked(false);
}
else
{
bottomNavigationView.getMenu().getItem(0).setChecked(false);
}
Log.d("page", "onPageSelected: "+position);
bottomNavigationView.getMenu().getItem(position).setChecked(true);
prevMenuItem = bottomNavigationView.getMenu().getItem(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
/* //Disable ViewPager Swipe
viewPager.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
return true;
}
});
*/
setupViewPager(viewPager);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
andoidFragment =new AndoidFragment();
// blogFragment =new BlogFragment();
aboutFragment =new AboutFragment();
adapter.addFragment(andoidFragment);
// adapter.addFragment(blogFragment);
adapter.addFragment(aboutFragment);
viewPager.setAdapter(adapter);
}
private void lunchInter()
{
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-xxxxxxx");
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
showAdInter();
}
@Override
public void onAdFailedToLoad(int errorCode){
String message = String.format("onAdFailedToLoad (*a)", getErrorReason(errorCode));
}
@Override
public void onAdClosed(){
if(exitApp)
finish();
}
});
}
private void showAdInter(){
if(mInterstitialAd.isLoaded())
{
mInterstitialAd.show();
}
else
{
Log.d("","Inter ad was not ready to be shown");
}
}
public void loadInterstitial()
{
AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("")
.build();
mInterstitialAd.loadAd(adRequest);
}
private String getErrorReason(int errorCode){
String errorReason = "";
switch (errorCode){
case AdRequest.ERROR_CODE_INTERNAL_ERROR:
errorReason = "Internal Error";
break;
case AdRequest.ERROR_CODE_INVALID_REQUEST:
errorReason = "Invalid Request";
break;
case AdRequest.ERROR_CODE_NETWORK_ERROR:
errorReason = "Network Error";
break;
case AdRequest.ERROR_CODE_NO_FILL:
errorReason = "No Fill";
break;
}
return errorReason;
}
@Override
public void onBackPressed(){
lunchInter();
loadInterstitial();
finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void Showpopup(){
TextView textclose;
Button btnWebsite;
myDialog.setContentView(R.layout.popupwindow);
textclose = (TextView) myDialog.findViewById(R.id.closeBtn);
btnWebsite = (Button) myDialog.findViewById(R.id.btnSend);
textclose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myDialog.dismiss();
}
});
btnWebsite.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String URL = "";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(URL));
startActivity(i);
}
});
myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
myDialog.show();
}
public void ShowContactUs(){
Intent i = new Intent(this,ContactUs.class);
startActivity(i);
/* myDialog.setContentView(R.layout.showcontactus);
myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
myDialog.show();*/
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.action_settings:
Showpopup();
return true;
case R.id.contact_us:
ShowContactUs();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
【问题讨论】:
标签: android interstitial