Google Play Store App wurde abgelehnt wegen unfindbaren Grund

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Google Play Store App wurde abgelehnt wegen unfindbaren Grund

    Hey Leute,

    habe heute meine app hochgeladen bei google play und dann bei der überprüfung kam folgendes raus:

    "Apps, die das Gerät des Nutzers, andere Geräte oder Computer, Server, Netzwerke, APIs oder Dienste, etwa andere Apps auf dem Gerät, Google-Dienste oder das Netz eines autorisierten Mobilfunkanbieters, stören, unterbrechen, beschädigen oder in unerlaubter Weise darauf zugreifen, sind nicht zulässig.

    Apps bei Google Play müssen den Kernanforderungen zur Systemoptimierung von Android entsprechen, die in den Qualitätsrichtlinien für Apps bei Google Play dokumentiert sind."

    play.google.com/intl/de/about/…ion/device-network-abuse/

    Könnte mir jemand sagen, warum?

    Meine App benötigt nichts, nur WLAN um Werbung anzuzeigen. Was mich wundert, dass sie ganze 11MB groß ist, obowhl sie aus 3 kleine Activitys besteht. Könnte das damit zusammenhängen? Hier meine Manifest. Muss ich bei Bereichtigungen WLAN im play store hinschreiben, oder nicht weil es ja eh nur für werbung ist. (package name habe ich ausgeblendet)

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    3. package="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">
    4. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    5. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    6. <application
    7. android:allowBackup="true"
    8. android:hardwareAccelerated="false"
    9. android:icon="@mipmap/ic_launcher"
    10. android:label="@string/app_name"
    11. android:largeHeap="true"
    12. android:roundIcon="@mipmap/ic_launcher_round"
    13. android:supportsRtl="true"
    14. android:theme="@style/AppTheme">
    15. <activity android:name=".MainActivity">
    16. <intent-filter>
    17. <action android:name="android.intent.action.MAIN" />
    18. <category android:name="android.intent.category.LAUNCHER" />
    19. </intent-filter>
    20. </activity>
    21. <activity android:name=".Home" />
    22. <activity android:name=".Home2" />
    23. </application>
    24. </manifest>
    Alles anzeigen


    und dann mein Main activity java code:

    Java-Quellcode

    1. package xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
    2. import android.content.pm.ActivityInfo;
    3. import android.graphics.Bitmap;
    4. import android.graphics.BitmapFactory;
    5. import android.graphics.Color;
    6. import android.os.AsyncTask;
    7. import android.support.v7.app.AppCompatActivity;
    8. import android.os.Bundle;
    9. import android.util.Log;
    10. import android.view.View;
    11. import android.widget.Button;
    12. import android.widget.Toast;
    13. import com.google.android.gms.ads.AdListener;
    14. import com.google.android.gms.ads.AdRequest;
    15. import com.google.android.gms.ads.AdView;
    16. import com.google.android.gms.ads.InterstitialAd;
    17. import java.util.concurrent.Executors;
    18. import java.util.concurrent.ScheduledExecutorService;
    19. import java.util.concurrent.TimeUnit;
    20. import br.com.simplepass.loading_button_lib.customViews.CircularProgressButton;
    21. public class Home2 extends AppCompatActivity {
    22. private CircularProgressButton circularProgressButton;
    23. private InterstitialAd mmInterstitialAd;
    24. private ScheduledExecutorService scheduler;
    25. private boolean isVisible;
    26. @Override
    27. protected void onCreate(Bundle savedInstanceState) {
    28. super.onCreate(savedInstanceState);
    29. setContentView(R.layout.activity_home2);
    30. setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    31. prepareAd();
    32. AdView mAdView3 = findViewById(R.id.adView3);
    33. AdRequest adRequest3 = new AdRequest.Builder().build();
    34. mAdView3.loadAd(adRequest3);
    35. circularProgressButton = (CircularProgressButton) findViewById(R.id.btn2);
    36. circularProgressButton.setOnClickListener(new View.OnClickListener() {
    37. @Override
    38. public void onClick(View view) {
    39. AsyncTask<String, String, String> demoDownload = new AsyncTask<String, String, String>() {
    40. @Override
    41. protected String doInBackground(String... voids) {
    42. try {
    43. Thread.sleep(85000);
    44. } catch (InterruptedException e) {
    45. e.printStackTrace();
    46. }
    47. return "done";
    48. }
    49. @Override
    50. protected void onPostExecute(String s) {
    51. if (s.equals("done")) {
    52. Toast.makeText(Home2.this, "DONE!", Toast.LENGTH_LONG).show();
    53. circularProgressButton.doneLoadingAnimation(Color.parseColor("#333639"), BitmapFactory.decodeResource(getResources(), R.drawable.ic_done_white_48dp));
    54. }
    55. }
    56. };
    57. circularProgressButton.startAnimation();
    58. demoDownload.execute();
    59. }
    60. });
    61. }
    62. @Override
    63. protected void onStart() {
    64. super.onStart();
    65. isVisible = true;
    66. if (scheduler == null) {
    67. scheduler = Executors.newSingleThreadScheduledExecutor();
    68. scheduler.scheduleAtFixedRate(new Runnable() {
    69. public void run() {
    70. Log.i("hello", "world");
    71. runOnUiThread(new Runnable() {
    72. public void run() {
    73. if (mmInterstitialAd.isLoaded() && isVisible) {
    74. mmInterstitialAd.show();
    75. } else {
    76. Log.d("TAG", "Interstitial not loaded");
    77. }
    78. prepareAd();
    79. }
    80. });
    81. }
    82. }, 10, 10, TimeUnit.SECONDS);
    83. }
    84. }
    85. private void prepareAd() {
    86. mmInterstitialAd = new InterstitialAd(this);
    87. mmInterstitialAd.setAdUnitId("ca-app-pub-9172839787905853/1689381961");
    88. mmInterstitialAd.loadAd(new AdRequest.Builder().build());
    89. }
    90. @Override
    91. protected void onStop() {
    92. super.onStop();
    93. scheduler.shutdownNow();
    94. scheduler = null;
    95. isVisible = false;
    96. }
    97. }
    Alles anzeigen


    Ich brauche bitte dringend Hilfe! Will nicht, dass mein account gebannt wird wenn ich nochmal ein verstoß hochlade. :(
    Kann ich irgendwie die app optimieren?
  • Update: habe nun anstatt:

    Quellcode

    1. @Override
    2. public void onClick(View view) {
    3. AsyncTask<String, String, String> demoDownload = new AsyncTask<String, String, String>() {
    @SuppressLint("StaticFieldLeak") AsyncTask<String, String, String> demoDownload = new AsyncTask<String, String, String>() {

    gemacht. Bringt das vielleicht irgendwie die App voran?
  • ich meinte nicht in deiner App sondern bei den hundert fragen von googelplay. Also deiner Beschreibung deiner app. Denke wenn deine app viel Werbung hat dann sollte das auch in der Beschreibung stehen. Da hat der User ein recht drauf und die premission für Netzwerk wlan holst du dir ja und egal was du damit machst. Du könntest alles machen also sollte das der User wissen und er muss es ja auch bestätigen.
    Könnte auch sein das du Werbung benutzt die Google nicht gerne sieht.
    Was macht deine app eigentlich außer Werbung?
    Was hat Google sonst noch bemängelt?
    Ein Feedback auf Tipps ist auch schön. :P

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von jogimuc ()

  • Brauch ich wirklich beide Permissions?

    Quellcode

    1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    2. <uses-permission android:name="android.permission.INTERNET">
    3. </uses-permission>

    habe irgendwo gelesen, dass INTERNET Permission nur brauche, wenn Daten von einem zum anderen Gerät gesendet werden. Brauche ich vielleicht noch diese berechtigung, wenn ich INTERNET wegmachen würde?

    Quellcode

    1. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
  • Habe auch etwas gelesen, dass wenn es im Hintergrund läuft google probleme mit hat.
    Weil mein InterstitalAd, wenn man die App schließt, noch weiter läuft und erst wenn die App aus dem zwischenspeicher gelöscht wird kann man sie von vorne starten.
    Weisst du wie ich da onDestroy einbringen kann, sodass der InterstitalAd bei app schließen sich auch schließt?

    @Override public void onPause() { super.onPause(); mmInterstitalAd.onPause(); }klappt leider nicht.
  • Onpause geht auch nicht sagt ja schon der Name pause. Dafür wäre onstop und ondestroy geeigneter. Wir du deine Werbung beendest kann ich dir nicht sagen nur mit mmInterstitalAd.onPause() wird es wohl nicht gehen .

    Mal ehrlich wenn Du in deine App Werbung also fremd Code einbaust solltest du dich auch damit auseinandersetzen. Und Wissen wie du ihn wieder beendest. So etwas sollte in der Beschreibung der werbe Routine stehen. Wenn nicht ist es für mich unseriös und da brauchst du dich nicht wundern wenn Google das ablehnt.
    Leider hast du auch meine frage was deine App eigentlich macht auch nicht beantwortet.
    Ein Feedback auf Tipps ist auch schön. :P