Android Open Source - popcorn-android Update From Project Back to project page popcorn-android .
License The source code is released under:
GNU General Public License
If you think the Android project popcorn-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package org.common.plugins.updateapp;
/ * w w w . j a v a 2 s . c o m * /
import java.io.File;
import java.util.List;
import java.util.Locale;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.net.Uri;
public class Update extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("openFile" )) {
try {
openFile(new File (args.getString(0).replaceAll("file://" , "" )));
} catch (Exception e){
callbackContext.error("Open apk file error!" );
return false;
}
} else if (action.equals("openApp" )) {
try {
if (checkApp(args.getString(0))){
openApp(args.getString(0));
} else {
callbackContext.error("there doesn't exist App[" + args.getString(0) +"]!" );
return false;
}
} catch (Exception e) {
callbackContext.error("error:" + e.getMessage());
return false;
}
}
callbackContext.success("Executing update plugin is succeed." );
return false;
}
private void openApp(String packageName) throws NameNotFoundException {
PackageManager pm = this.cordova.getActivity().getPackageManager();
PackageInfo pi = pm.getPackageInfo(packageName, 0);
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(pi.packageName);
List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0);
ResolveInfo ri = apps.iterator().next();
if (ri != null ) {
String packageName1 = ri.activityInfo.packageName;
String className = ri.activityInfo.name;
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName(packageName1, className);
intent.setComponent(cn);
this.cordova.getActivity().startActivity(intent);
}
}
private boolean checkApp(String packageName) {
if (packageName == null || "" .equals(packageName))
return false;
try {
ApplicationInfo info = this.cordova.getActivity().getPackageManager()
.getApplicationInfo( packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (NameNotFoundException e) {
return false;
}
}
private void openFile(File f) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// ??getMIMEType()???????MimeType
String type = getMIMEType(f);
// ??intent?file?MimeType
intent.setDataAndType(Uri.fromFile(f), type);
this.cordova.getActivity().startActivity(intent);
}
private String getMIMEType(File f) {
String type = "" ;
String fName = f.getName();
// ?????????
String end = fName.substring(fName.lastIndexOf("." ) + 1, fName.length()).toLowerCase(Locale.ENGLISH);
// ????????????MimeType
if (end.equals("m4a" ) || end.equals("mp3" ) || end.equals("mid" )
|| end.equals("xmf" ) || end.equals("ogg" ) || end.equals("wav" )) {
type = "audio" ;
} else if (end.equals("3gp" ) || end.equals("mp4" )) {
type = "video" ;
} else if (end.equals("jpg" ) || end.equals("gif" ) || end.equals("png" )
|| end.equals("jpeg" ) || end.equals("bmp" )) {
type = "image" ;
} else if (end.equals("apk" )) {
// android.permission.INSTALL_PACKAGES
type = "application/vnd.android.package-archive" ;
} else {
type = "*" ;
}
// ?????????????????????
if (end.equals("apk" )) {
} else {
type += "/*" ;
}
return type;
}
}
Java Source Code List com.squareup.okhttp.Address.java com.squareup.okhttp.ConnectionPool.java com.squareup.okhttp.Connection.java com.squareup.okhttp.Dispatcher.java com.squareup.okhttp.Failure.java com.squareup.okhttp.HttpResponseCache.java com.squareup.okhttp.Job.java com.squareup.okhttp.MediaType.java com.squareup.okhttp.OkAuthenticator.java com.squareup.okhttp.OkHttpClient.java com.squareup.okhttp.OkResponseCache.java com.squareup.okhttp.Request.java com.squareup.okhttp.ResponseSource.java com.squareup.okhttp.Response.java com.squareup.okhttp.RouteDatabase.java com.squareup.okhttp.Route.java com.squareup.okhttp.TunnelRequest.java com.squareup.okhttp.internal.AbstractOutputStream.java com.squareup.okhttp.internal.Base64.java com.squareup.okhttp.internal.DiskLruCache.java com.squareup.okhttp.internal.Dns.java com.squareup.okhttp.internal.FaultRecoveringOutputStream.java com.squareup.okhttp.internal.NamedRunnable.java com.squareup.okhttp.internal.Platform.java com.squareup.okhttp.internal.StrictLineReader.java com.squareup.okhttp.internal.Util.java com.squareup.okhttp.internal.http.AbstractHttpInputStream.java com.squareup.okhttp.internal.http.HeaderParser.java com.squareup.okhttp.internal.http.HttpAuthenticator.java com.squareup.okhttp.internal.http.HttpDate.java com.squareup.okhttp.internal.http.HttpEngine.java com.squareup.okhttp.internal.http.HttpTransport.java com.squareup.okhttp.internal.http.HttpURLConnectionImpl.java com.squareup.okhttp.internal.http.HttpsEngine.java com.squareup.okhttp.internal.http.HttpsURLConnectionImpl.java com.squareup.okhttp.internal.http.OkResponseCacheAdapter.java com.squareup.okhttp.internal.http.Policy.java com.squareup.okhttp.internal.http.RawHeaders.java com.squareup.okhttp.internal.http.RequestHeaders.java com.squareup.okhttp.internal.http.ResponseHeaders.java com.squareup.okhttp.internal.http.RetryableOutputStream.java com.squareup.okhttp.internal.http.RouteSelector.java com.squareup.okhttp.internal.http.SpdyTransport.java com.squareup.okhttp.internal.http.Transport.java com.squareup.okhttp.internal.http.UnknownLengthHttpInputStream.java com.squareup.okhttp.internal.spdy.ErrorCode.java com.squareup.okhttp.internal.spdy.FrameReader.java com.squareup.okhttp.internal.spdy.FrameWriter.java com.squareup.okhttp.internal.spdy.HeadersMode.java com.squareup.okhttp.internal.spdy.Hpack.java com.squareup.okhttp.internal.spdy.Http20Draft06.java com.squareup.okhttp.internal.spdy.IncomingStreamHandler.java com.squareup.okhttp.internal.spdy.NameValueBlockReader.java com.squareup.okhttp.internal.spdy.Ping.java com.squareup.okhttp.internal.spdy.Settings.java com.squareup.okhttp.internal.spdy.Spdy3.java com.squareup.okhttp.internal.spdy.SpdyConnection.java com.squareup.okhttp.internal.spdy.SpdyStream.java com.squareup.okhttp.internal.spdy.Variant.java com.squareup.okhttp.internal.tls.DistinguishedNameParser.java com.squareup.okhttp.internal.tls.OkHostnameVerifier.java io.popcorntime.android.PopcornTime.java io.popcorntime.frontend.BuildConfig.java nl.xservices.plugins.SSLCertificateChecker.java org.apache.cordova.App.java org.apache.cordova.AuthenticationToken.java org.apache.cordova.BuildConfig.java org.apache.cordova.CallbackContext.java org.apache.cordova.Config.java org.apache.cordova.CordovaActivity.java org.apache.cordova.CordovaArgs.java org.apache.cordova.CordovaChromeClient.java org.apache.cordova.CordovaInterface.java org.apache.cordova.CordovaPlugin.java org.apache.cordova.CordovaResourceApi.java org.apache.cordova.CordovaWebViewClient.java org.apache.cordova.CordovaWebView.java org.apache.cordova.DirectoryManager.java org.apache.cordova.DroidGap.java org.apache.cordova.ExifHelper.java org.apache.cordova.ExposedJsApi.java org.apache.cordova.FileHelper.java org.apache.cordova.IceCreamCordovaWebViewClient.java org.apache.cordova.JSONUtils.java org.apache.cordova.LOG.java org.apache.cordova.LinearLayoutSoftKeyboardDetect.java org.apache.cordova.NativeToJsMessageQueue.java org.apache.cordova.PluginEntry.java org.apache.cordova.PluginManager.java org.apache.cordova.PluginResult.java org.apache.cordova.ScrollEvent.java org.apache.cordova.Whitelist.java org.apache.cordova.device.Device.java org.apache.cordova.networkinformation.NetworkManager.java org.common.plugins.updateapp.Update.java org.nodejs.core.NodeJSCore.java org.nodejs.core.NodeJSService.java