Google के बाद मैं ऐसा करने का निर्णय लेता हूं:

<receiver android:name=".UpdateReceiver">
    <intent-filter>
       <action android:name="android.intent.action.ACTION_MY_PACKAGE_REPLACED" />
    </intent-filter>
</receiver>

तथा:

public class UpdateReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.ACTION_MY_PACKAGE_REPLACED")){
            Intent intent = new Intent(context, StartActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        }
    }
}

चूंकि डिवाइस निहित है, इसलिए अपडेट करने के लिए नीचे दिए गए कोड का उपयोग करें:

command = "pm install -r " + "/mnt/sdcard/Download/xxx.apk";                                               
Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", command});
proc.waitFor();

अपडेट सफलतापूर्वक हो गया है, लेकिन अपडेट रिसीवर ट्रिगर नहीं हुआ है, तो क्यों?

मेरा डिवाइस ओएस वर्जन 4.4.4 है। और मैं अपने सर्वर से ऐप अपडेट करता हूं।

0
navylover 20 सितंबर 2018, 05:07

1 उत्तर

सबसे बढ़िया उत्तर

यह android.intent.action.ACTION_MY_PACKAGE_REPLACED नहीं है। यह android.intent.action.MY_PACKAGE_REPLACED है

<receiver android:name=".UpdateReceiver">
    <intent-filter>
       <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
    </intent-filter>
</receiver>
1
nupadhyaya 20 सितंबर 2018, 05:20