Der Zweck der App ist es, eine Ansicht auf dem Startbildschirm zu zeigen, während Stromverbindung oder Trennung unabhängig vom Laufstatus der App. Es sollte auf dem Startbildschirm angezeigt werden, auch wenn die App nicht ausgeführt wird. PROBLEM: 1: Es wird kein Popup-Bildschirm angezeigt, während die App geschlossen ist.Broadcast-Empfänger funktioniert nicht, wenn App geschlossen ist. Es funktioniert perfekt, während App ausgeführt wird
Hinweis: Es wird ein Popup-Bildschirm angezeigt, während die Anwendung ausgeführt wird.
Geräte:
Hier habe ich den Code angebracht Entwicklermodus:
Modus Lollipop. Die Hauptaktivitätsklasse ist wie folgt. Es öffnet sich beim Start der Anwendung.
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE_SOME_FEATURES_PERMISSIONS = 101;
static WindowManager.LayoutParams params;
static WindowManager wm;
static ViewGroup lockScreen;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle bundle = getIntent().getExtras();
try {
String from = bundle.getString("from");
if (from.equalsIgnoreCase("broadcast")) {
startActivity(new Intent(getApplicationContext(), BatteryAdActivity.class));
finish();
}
} catch (Exception ex) {
}
getPermission();
}
private void getPermission() {
String[] PERMISSIONS = {Manifest.permission.BATTERY_STATS, Manifest.permission.SYSTEM_ALERT_WINDOW, Manifest.permission.REORDER_TASKS};
if (!hasPermissions(this, PERMISSIONS)) {
ActivityCompat.requestPermissions(this, PERMISSIONS, REQUEST_CODE_SOME_FEATURES_PERMISSIONS);
}
}
public static boolean hasPermissions(Context context, String... permissions) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
}
2: Die Rundfunkempfänger Klasse als unten.
public class PowerConnectionReceiver extends BroadcastReceiver {
Context context;
@Override
public void onReceive(Context context, Intent intent) {
this.context = context;
PackageManager pm = context.getPackageManager();
Intent launchIntent = pm.getLaunchIntentForPackage("com.dogpo.batteryoptimize");
launchIntent.putExtra("from", "broadcast");
context.startActivity(launchIntent);
showMessage("charging");
}
private void showMessage(String charging) {
Toast.makeText(context, charging, Toast.LENGTH_SHORT).show();
}
}
3: Die Aktivität, die auf Netztrenn öffnet oder eine Verbindung ist als unten.
public class BatteryAdActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_battery_ad);
}
}
4: Das Manifest Code ist als unten.
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".PowerConnectionReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
<activity android:name=".BatteryAdActivity"
></activity>
</application>
Sie müssen genauer sein: das Ad-Netzwerk zum Beispiel –
@IshaanKumar Des Zwecks des App es Batterieinformationen mit Google-Anzeigen in Sperrbildschirm wie das Bild zu zeigen, die ich in meiner ursprünglichen Frage angebracht . Ich möchte wissen, wie man dies in Android-Plattform erreicht. (Ich brauche Schritte, insbesondere den Popup-Bildschirm auf dem Sperrbildschirm). Sie können meinen Quellcode in https://github.com/tenzinzero1/Testing finden. – Tashidev
Tun Sie es in XML. was ist das Problem? –